[ dimke7even @ 24.01.2007. 21:51 ] @
Zeleo sam da napravim par singletonova koji su medjusobno povezani u asocijaciji i koji nasledjuju jednu klasu (nije bas apstraktna). singletonovi su ustvari hijerarhijski povezani, svaka klasa je c(in (rank), i svaki c(in ima c(lan koji pokazuje sledec'i c(in.(c(inovi su kao u nekoj singleton listikada ) kada je ispunjen uslov za napredovanje trebalo bi da se poyove f'ja promote koja ce promeniti c(in. problemi su nastali prilikom implementacije i stvarno nemam blage veze sta je Pomognite ako boga znate!!! source: Code: class Rank{ protected: Rank* superiorRank_; int popust_; int minLicKupovina_; int minGrupKupovina_; public: Rank(int, int, int); virtual Rank* getInstance()=0; //ovo je red 13 virtual bool isForPromotion(int, int)=0; friend void promoteMember(Rank*); }; class Direktor : public Rank{ //ovo je red 18 private: static Direktor* istance; protected: Direktor(int, int, int); public: static Rank* getInstance(); bool isForPromotion(int a, int b){return false;} }; Rank::Rank(int popust, int minLicKupovina, int minGrupKupovina){ popust_ = popust; minLicKupovina_ = minLicKupovina; minGrupKupovina_ = minGrupKupovina; } Direktor* Direktor::istance = 0; Direktor::Direktor(int popust, int minLicKupovina, int minGrupnaKupovina) : Rank(popust, minLicKupovina, minGrupnaKupovina){ } Rank* Direktor::getInstance(){ if(istance == 0) istance = new Direktor();// ovo je red 50 return istance; } evo sta kaze kompajler: --------------------Configuration: proba - Win32 Debug-------------------- Compiling... rank.cpp c:\podaci\infosi128\dimi\proba\rank.cpp(50) : error C2259: 'Direktor' : cannot instantiate abstract class due to following members: c:\podaci\infosi128\dimi\proba\rank.cpp(18) : see declaration of 'Direktor' c:\podaci\infosi128\dimi\proba\rank.cpp(50) : warning C4259: 'class Rank *__thiscall Rank::getIstance(void)' : pure virtual function was not defined c:\podaci\infosi128\dimi\proba\rank.cpp(13) : see declaration of 'getIstance' c:\podaci\infosi128\dimi\proba\rank.cpp(50) : error C2512: 'Direktor' : no appropriate default constructor available Error executing cl.exe. rank.obj - 2 error(s), 1 warning(s) |