Klase i pointeri

2

Klase i pointeri

offline
  • Nom  Male
  • Građanin
  • Pridružio: 17 Nov 2004
  • Poruke: 168
  • Gde živiš: Shanghai, China

@Bone

Hvala za komentare u svakom slucaju Wink Ovde (shmrz) si jedini koji komentarishe... Neutral



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Peca  Male
  • Glavni Administrator
  • Predrag Damnjanović
  • SysAdmin i programer
  • Pridružio: 17 Apr 2003
  • Poruke: 23211
  • Gde živiš: Niš

nemam sta da komentarisem, sve mi je to poznato Wink



offline
  • Pridružio: 18 Apr 2003
  • Poruke: 8134
  • Gde živiš: U kesici gumenih bombona...

a ja ucim C# i uzimam neke 'trikove' Smile
mozda mi pomogne...

jedno glupo pitanje. za sta sluzi ~?

u prvom primeru:
~C_dugme();

offline
  • Nom  Male
  • Građanin
  • Pridružio: 17 Nov 2004
  • Poruke: 168
  • Gde živiš: Shanghai, China

@Snoop

~C_dugme(); je destruktor klase.
C_dugme() je konstruktor.

destruktor se poziva kada izvrsis delete tj delete[] a konstruktor kad pozoves new odnosno new...[].

Poenta je da ako zelis da konstruktor prima parametre, ne mozes da koristis new...[] osim ako ne overload-ujes konstruktor (tj. napises jedan bez parametara i jedan sa).

destruktor sluzi da oslobodi svu memoriju koju je klasa alocirala i eventualno da izvrsis dodatne izmene (na primer, ako si imao u klasi pointere next / previous, da "prespojis" ivicne clanove ili sta vec zelis da uradis pri brisanju).

ne znam koliko c# i c++ su isti po pitanju new & delete ...


@Peca
pa znam ja za tebe Wink

offline
  • Pridružio: 04 Mar 2005
  • Poruke: 3

trazim na netu nesto sto bi mi pomoglo da rijesim zadatak i tako nadjem vas forum.
blago vama kad ste tako pametni i daa vam se rapravljati o ovim stvarima! nego, ako mozete da mi kazete sta naci -> (u pok->ime_studenta) zadatak je iz operativnih sistema a ovo se valjda odnosi na c.
hvala,meni su ovo spanska sela!
Embarassed

offline
  • Peca  Male
  • Glavni Administrator
  • Predrag Damnjanović
  • SysAdmin i programer
  • Pridružio: 17 Apr 2003
  • Poruke: 23211
  • Gde živiš: Niš

-> je operator
on oznacava da nesto (promenljiva ili funkcija) pripada objektu (na koji ukazuje tvoj pointer).

recimo:
avion *a; // pointer a = new avion; // kreirali smo objekat klase avion, i pointer 'a' sada ukazuje na taj novo-kreirani objekat a -> gorivo = 5; // promenljiva 'gorivo' je sada vrednosti 5... 'gorivo' je promenljiva koja pripada objektu 'a', zato imamo -> a -> poleti(); // pozivamo funkciju 'poleti' koja takodje pripada objektu 'a', zato i ovde imamo ->

offline
  • Pridružio: 04 Mar 2005
  • Poruke: 3

hvala puno, jako ste ljubazni!

offline
  • Nom  Male
  • Građanin
  • Pridružio: 17 Nov 2004
  • Poruke: 168
  • Gde živiš: Shanghai, China

@cicamaco

ovaj forum i sluzi za razmenu informacija & saveta ;-)

mala dopuna:
-> je u slucaju da je objekat kreiran sa new (kao u pecinom primeru)

. je u slucaju da je objekat kreiran staticki, bez new, na primer:
    avion a;     a.gorivo = 5;     a.poleti();

offline
  • Pridružio: 01 Okt 2004
  • Poruke: 351
  • Gde živiš: Qrshumliya

ili bolje -> u sluchaju da je memorija za objekat dinamichni alocirana u heap-u, a tacka (.) u sluchaju da je memorija statichki alocirana na steku Wink

Inace ovde do izrazhaja dolazi moc OOP-a ako u tvom primeru nasledimo neku klasu, npr. C_dugme i iz nje kreiramo nekoliko novih klasa npr. Bitmap_dugme, Tool_dugme... i onda lepo svim njima deklarishemo istu kasno-povezujucu (virtual) metodu. E, onda taj dinamichki niz pointera na osnovnu klasu (C_dugme) moze da se koristi tako da njegovi elementi pokazuju na bilo kog naslednika i da pri pozivanju deklarisane 'virtual' metode za svaku od instanci nasledjenih klasa poziva razlicite metode, u zavisnosti od klase.
Polimorfizam u malom Very Happy

Inace sad bi zalepio kilo C++ koda da ovo pojasnim ljudima koji nisu upuceni u OOP, ali sam pocheo sa C++ -om da se bakcem tek pre 4-5 dana, tako da joshuvek nebi to mogao da ispisem Wink bar ne bez literature Very Happy

offline
  • Peca  Male
  • Glavni Administrator
  • Predrag Damnjanović
  • SysAdmin i programer
  • Pridružio: 17 Apr 2003
  • Poruke: 23211
  • Gde živiš: Niš

tako rade 3D Engine-i...
imas klasu, sa koordinatama i draw() funkcijom... i posle pravis podklase kakve hoces, a jezgro engine-a poziva draw() za svaki objekat koji ima u nizu...

Ko je trenutno na forumu
 

Ukupno su 1047 korisnika na forumu :: 21 registrovanih, 4 sakrivenih i 1022 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: babaroga, bolenbgd, darkangel, FOX, HrcAk47, Kaplar2, Kubovac, kybonacci, Mali Rambo, milenko crazy north, milutin134, nemkea71, opt1, perkanidja1, Sićko, t84dar, theNedjeljko, Tvrtko I, vathra, Vatreni Zmaj, YU-UKI