Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Statički članovi klase

[es] :: C/C++ programiranje :: Statički članovi klase

[ Pregleda: 3245 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

itf
Zagreb

Član broj: 59794
Poruke: 993
*.fsb.hr.



+9 Profil

icon Statički članovi klase13.03.2006. u 14:00 - pre 219 meseci
Ja zaista ne mogu shvatiti čemu to služi. Što će mi statička varijabla u klasi, i čemu služe statičke funkcije kao članovi te klase? Može li mi itko na nekakvom primjeru objasniti? Hvala
 
Odgovor na temu

gmail_
Zg

Član broj: 85877
Poruke: 15
*.adsl.net.t-com.hr.



Profil

icon Re: Statički članovi klase13.03.2006. u 14:45 - pre 219 meseci
Citat:
itf: Što će mi statička varijabla u klasi




pr:
//Klasa.h
class Klasa{
public:
Klasa(){// konstruktor
broj_Klasa_Objekta ++;
obicana_varijabla++;
}

static int broj_Klasa_objekta; // staticka varijabla

int obicna_varijabla;// obicna

};
// recimo Klasa.cpp moze i u .h ali van tjela klase
// definicija staticke varijable

int Klasa::broj_Klasa_objekta = 1;// postavljanje na vrijdenost 1 ,ako se ne varam po
//defaultu je 0 ali mora biti definirana

//unutar nekog maina:

...
cout << Klasa::broj_Klasa_objekta ; // ispisat ce 1
//primjeti da jos uvjek nemamo instacu klase Klasa

Klasa k1;// instanca klase Klasa
Klasa k2;// instanca klase Klasa
Klasa k3;// instanca klase Klasa

cou << k1.broj_Klasa_objekta ; // ispisat ce 2
cou << k2.broj_Klasa_objekta ; // ispisat ce 3
cou << k3.broj_Klasa_objekta ; // ispisat ce 4

//recimo da je pocetna vrijednost varijable obicna_varijabla = 0
//makar ce u ovom slucaju biti u njoj smece jer ju nismo definirali
// ali teoretski uvjek ce ispisati 1
cou << k1.obicna_varijabla ; // ispisat ce 1
cou << k2.obicna_varijabla ; // ispisat ce 1
cou << k3.obicna_varijabla ; // ispisat ce 1
...

ZAKLJUCAK:

staticka varijabla je djeljena izmedju svih objekta istog tipa
i za nju se alocira prostor samo jednom i to prije nego se instancira klasa(u ovom slucaju prije nego se uslo u main)
( znaci laicki postoji samo jedna varijabla " broj_Klasa_objekta" bez obzira bilo 5 instanci klase Klasa ili nijedna)

za funkcije ti je slicno:

staticke funkcije su one funkcije koje mogu pristupiti samo statickim memberima klase


uh al sam ga zakomplicirao ali nadam se da je bar malo pomoglo

[Ovu poruku je menjao gmail_ dana 13.03.2006. u 15:46 GMT+1]
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4901
*.nat-pool.po.sbb.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: Statički članovi klase13.03.2006. u 14:58 - pre 219 meseci
Zamisli da tvoja klasa u sebi sadrži neki VELIKI BINARNI PODATAK, ka na primer neku
BITMAP-u od 2MB (Recimo sliku nečega).

Zamisli šta bi se desilo da kreiraš 200 objekata te klase, a slika je naravno ista...

static prosto kaze da je jedan primerak dovoljan.

A evo ti i primer jednog vrhunskog programera radi slicnog problema:

Citat:

One more example. Once I created an imaging application, and the Image
class had a 50k lookup table (precalculated data) to speed up some
internal calculations. I accidentally made that lookup table a regular
member, when it should have been a static member (the same
pre-calculated data could have been shared by all instances). My mistake
was not a traditional leak, because the memory was always deallocated,
but I wasted unnecessarily too much memory. After having a hundred
instances of that object, it became overwhelming, and I eventually got a
memory leak complaint from the customer. No memory leak detector could
find anything, while it was clear that the more objects I had, the
available memory was decreasing rapidly, and after a careful look at the
code, I spotted the "cockroach". It was one very hard to find problem.



[Ovu poruku je menjao X Files dana 13.03.2006. u 15:59 GMT+1]
 
Odgovor na temu

itf
Zagreb

Član broj: 59794
Poruke: 993
*.fsb.hr.



+9 Profil

icon Re: Statički članovi klase13.03.2006. u 15:29 - pre 219 meseci
Sad kužim... Hvala
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
*.lionbridge.com.



+6 Profil

icon Re: Statički članovi klase13.03.2006. u 16:20 - pre 219 meseci
Citat:
X Files: Zamisli da tvoja klasa u sebi sadrži neki VELIKI BINARNI PODATAK, ka na primer neku
BITMAP-u od 2MB (Recimo sliku nečega).

Zamisli šta bi se desilo da kreiraš 200 objekata te klase, a slika je naravno ista...



Ovo je loš primer. Ako objekat sadrži veliki binarni podatak, kreiraj ga samo jednom i prosleđuj pointere ili reference na njega gde treba.
 
Odgovor na temu

Goran Arandjelovic
Beograd

Član broj: 29116
Poruke: 387
*.verat.net.



+9 Profil

icon Re: Statički članovi klase13.03.2006. u 19:24 - pre 219 meseci
@itf
Npr. tako implementiraš reference counting u nekoj klasi...
 
Odgovor na temu

[es] :: C/C++ programiranje :: Statički članovi klase

[ Pregleda: 3245 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.