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:

  1. avion *a; // pointer
  2.  
  3. a = new avion;
  4. // kreirali smo objekat klase avion, i pointer 'a' sada ukazuje na taj novo-kreirani objekat
  5.  
  6. a -> gorivo = 5;
  7. // promenljiva 'gorivo' je sada vrednosti 5... 'gorivo' je promenljiva koja pripada objektu 'a', zato imamo ->
  8.  
  9. a -> poleti();
  10. // 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:

  1. avion a;
  2. a.gorivo = 5;
  3. 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 1048 korisnika na forumu :: 66 registrovanih, 3 sakrivenih i 979 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: A.R.Chafee.Jr., amaterSRB, Andrija357, Asparagus, bato_banjaluka, bestguarder, blatruc82, bokisha253, BtR-45, Budala, cenejac111, Chainsaw, cyprus, darionis, darkkran, Dejan_vw, deLacy, desmeki, Dovla, DrNeoCortex, dule10savic, eagle.rs, elenemste, Goksi95, hellenic, Jaz, Jeremiah, Kalem, ljuba.b, lucko1, lukisa, MaksicZoran, mat, mdp92, mercedesamg, mikrimaus, milenko crazy north, milutin134, Misirac, nebidrag, nekdo, nenaddz, niksa517, NNPD, nobutado, pein, pisac12, prikolica, PrincipL, PuškeiPlavuše, Rebel Frank, Rogan33, royst33, ruma, sabros, Saša1989, Shinobi, synergia, Tila Painen, Trpe Grozni, Underwood, Vlada78, Vzor50, zbazin, zlaya011, Zrcalo