andonovski
Slavan
- Učlanjen(a)
- 13.01.2005
- Poruke
- 70
- Poena
- 309
Kod:
[FONT="Courier New"]typedef enum {levo, desno} NESTO;
class xxx {
protected:
static id;
NESTO nesto;
public:
xxx() {nesto=levo;};
virtual int getId()const {return id;};
virtual NESTO getNesto()const {return nesto;};
virtual void setNesto(NESTO n) {nesto=n;};
};
int xxx::id=0;
//=======================================
class XXX : public xxx {
private:
int broj;
public:
XXX() {broj=1111;};
XXX(int a) {broj=a*a-a+1234;};
int getBroj()const {return broj;}
void setBroj(int k) {broj=k;};
};
[B]int XXX:id=123;[/B] //<--- err[/FONT]
[C++ Error] xxx.h(28): E2316 'id' is not a member of 'XXX'
Pitanje 1: da li moram u svakoj klasi, koja nasledi xxx, da pravim poseban staticki atribut ili moze nekako da se definise u virtualnoj klasi pa da ga imam i u svakoj nadledjenoj i kako u tom slucaju da ga inicijalizujem? posto hocu da namestim puno izvedenih klasa i ne bih bas u svakoj da kucam static int id
Pitanje 1.1: da li mogu u header fajlu da inicijalizujem static clan kako sto sam uradio ili bas mora u zasebnom .cpp?
(napomena: probao sam i pise mi "[C++ Warning] gradjevine.h(18): W8058 Cannot create pre-compiled header: initialized data in header", kada prebacim inicijalizaciju u cpp fajl ne buni se)