pomoc s triedami v c++

Programovacie jazyky, rady, poradňa...
skkiller2
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 95
Registrovaný: 06 dec 2008, 11:23
Kontaktovať používateľa:

Príspevok od používateľa skkiller2 »

pomožte mi niekto s tym ja som z toho jelen už:D:

Kód: Vybrať všetko

#include <iostream>

using namespace std; 
class worker
{
      private:
      int vek;
      int pocetlet;
      int plat;
      public:
      worker(gvek,gpocetletlet,gplat);
      ~worker();
      void setAge(int gvek){vek=gvek;};
      void setpocetlet(int gpocetlet){pocetlet=gpocetlet;};
      void setPlat(int gplat){plat=gplat;};
      int getAge(){return vek;}
      int getpocetlet(){return pocetlet;}
      int getPlat(){return plat;}
      
};  
int main ()
{    
     int stop;
     worker julo(50, 15658, 30);
        
    
     worker jano(20,10000,5);
     
     cout<<"julo: "<<julo.getAge()<<"rokov "<<julo.getPlat()<<"$ mesacne "<<julo.getpocetlet()<<" rokov vo firme
";
     cout<<"jano: "<<jano.getAge()<<"rokov "<<jano.getPlat()<<"$ mesacne "<<jano.getpocetlet()<<" rokov vo firme";
     cin>>stop;
     
}
     
thx:)

//autoeditácia príspevku ( 28 Mar 2009, 14:16 )
no už som na to prišiel ale aj tak neviem kam sa dáva destructor hmm?

Kód: Vybrať všetko

#include <iostream>

using namespace std; 
class worker
{
      
      int vek;
      int pocetlet;
      int plat;
      public:
      worker(int gvek,int gpocetlet,int gplat)
      {
             vek=gvek;
             pocetlet=gpocetlet;
             plat=gplat;
      };
            
      int getAge(){return vek;}
      int getpocetlet(){return pocetlet;}
      int getPlat(){return plat;}
      
      
};  
int main ()
{    
     int stop;
     worker julo(50, 30, 15550);
        
    
     worker jano(20,5,12548);
     
     cout<<"julo: "<<julo.getAge()<<"rokov "<<julo.getPlat()<<"$ mesacne "<<julo.getpocetlet()<<" rokov vo firme\n";
     cout<<"jano: "<<jano.getAge()<<"rokov "<<jano.getPlat()<<"$ mesacne "<<jano.getpocetlet()<<" rokov vo firme";
     cin>>stop;
     
}
     
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

ČO presne tým "kam sa dáva destuctor" myslíš?
skkiller2
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 95
Registrovaný: 06 dec 2008, 11:23
Kontaktovať používateľa:

Príspevok od používateľa skkiller2 »

no toto:
~worker();
sa ževraj volá deštruktor a neviem kde sa to ma dať aby to fungovalo aj s tym.. :?
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Viem, že to je deštruktor. Ale stále neviem, či sa pýtať na to, kde to máš nadeklarovať, alebo na to, kde to máš potom použiť. :)
skkiller2
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 95
Registrovaný: 06 dec 2008, 11:23
Kontaktovať používateľa:

Príspevok od používateľa skkiller2 »

no zaujímalo by ma najprv že kde sa to má dať a tiež na čo to slúži..ale nechto dám hocikde vyhodí mi error..:)
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Deštruktor slúži na "upratanie" toho objektu. Používa sa to napr. vtedy, ak ten objekt alokuje nejakú pamäť, vytvára pomocné súbory... (takže v tom deštruktore sa tá pamäť uvoľní, pomocný súbor sa vymaže...).
C++ deštruktor zavolá automaticky ak opúšťaš nejaký blok (preto som to presunul do funkcie, inak by sa nezavolal).

Skús niečo takéto:

Kód: Vybrať všetko

#include <iostream>

using namespace std;
class worker
{

	int vek;
	int pocetlet;
	int plat;
	public:
	worker(int gvek,int gpocetlet,int gplat)
	{
		vek=gvek;
		pocetlet=gpocetlet;
		plat=gplat;
	}
	~worker()
	{
		cout << "destructor (" << vek << ", " << plat << ", " << pocetlet << ")" << endl;
	}

	int getAge(){return vek;}
	int getpocetlet(){return pocetlet;}
	int getPlat(){return plat;}
};

void test(void)
{
	worker julo(50, 30, 15550);


	worker jano(20,5,12548);

	cout<<"julo: "<<julo.getAge()<<"rokov "<<julo.getPlat()<<"$ mesacne "<<julo.getpocetlet()<<" rokov vo firme" << endl;
	cout<<"jano: "<<jano.getAge()<<"rokov "<<jano.getPlat()<<"$ mesacne "<<jano.getpocetlet()<<" rokov vo firme" << endl;
}

int main ()
{
	int stop;

	test();

	cin>>stop;
}
skkiller2
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 95
Registrovaný: 06 dec 2008, 11:23
Kontaktovať používateľa:

Príspevok od používateľa skkiller2 »

aha okej tak už tomu chápem keď by som chcelnejaké dáta z tej triedy použiť mimo funkcie test tak to nepojde hmm celkom nepoužiteľné:D
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

skkiller2 napísal:aha okej tak už tomu chápem keď by som chcelnejaké dáta z tej triedy použiť mimo funkcie test tak to nepojde hmm celkom nepoužiteľné:D
hmm očividne chápeš :roll:
to vôbec nie je pravda, on to dal do funkcie test ktorú zavolal z main len aby si videl volanie deštruktorov. Objekt môžeš používať z kade chceš
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Príspevok od používateľa BX »

skkiller2 ako/odkial sa ucis C++? Mne to pripada, akoby si mal knihu "Naucte se C++ za 21 dni" a tam to mas podrobne vysvetlene. Teda nemusis ju mat, ale taky isty program je aj tam :-D No to je jedno, od kadialkolvek sa ucis, musis to tam mat vysvetlene.
A este som si vsimol ze si slovak, ale premenne mas po cesky. Odpisovanim zdrojaku do bodky, sa nikdy nic nenaucis ;)
skkiller2
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 95
Registrovaný: 06 dec 2008, 11:23
Kontaktovať používateľa:

Príspevok od používateľa skkiller2 »

ouky douky necham to tak hlavne že osm splnil ulohu:D
tak sa idem učiť ďalej...inak dik za help

//autoeditácia príspevku ( 28 Mar 2009, 18:03 )
BX napísal:skkiller2 ako/odkial sa ucis C++? Mne to pripada, akoby si mal knihu "Naucte se C++ za 21 dni" a tam to mas podrobne vysvetlene. Teda nemusis ju mat, ale taky isty program je aj tam :-D No to je jedno, od kadialkolvek sa ucis, musis to tam mat vysvetlene.
A este som si vsimol ze si slovak, ale premenne mas po cesky. Odpisovanim zdrojaku do bodky, sa nikdy nic nenaucis ;)
tak tak presne tu knihu len tam v riešeni neboul použity ten destructor tak osm bol len trochu zvedavy...a asi mi to po fčerajšku zle dopína tak som moc nepochopil ten opis toho destructora a s tym pisanim kodu do bodky zas šetko nebolo uplne rovnak..to mne už mi pripadaju niektore české výrazy ako normálne..
Napísať odpoveď