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

Singleton, problemi sa nasledjivanjem za singleton

[es] :: C/C++ programiranje :: Singleton, problemi sa nasledjivanjem za singleton

[ Pregleda: 3251 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

dimke7even
Aleksandar Dimic
Beograd

Član broj: 131437
Poruke: 26
212.62.55.*



Profil

icon Singleton, problemi sa nasledjivanjem za singleton24.01.2007. u 21:51 - pre 180 meseci
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)

7even respect
 
Odgovor na temu

pcaca
Aleksandar
Makedonija

Član broj: 5333
Poruke: 92
62.162.176.*



Profil

icon Re: Singleton, problemi sa nasledjivanjem za singleton25.01.2007. u 02:02 - pre 180 meseci
To ti je zato sto sa statickom funkcijom u Direktor
Code:
static Rank* getInstance();

ne prepisujes virtuelnu funkciju iz klase Rank
Code:
virtual Rank* getInstance()=0;

Tako da ti je u Direktor cista (pure) virtuelna funkcija (virtual Rank* getInstance()=0;) ne definisana pa Direktor ostaje abstraktna klasa.

VS2005 kod mene na slican kod kaze:
Citat:
warning C4526: 'B::getInstance' : static member function cannot override virtual function 'A *A::getInstance(void)'
error C2259: 'B' : cannot instantiate abstract class


Valjda sam se dobro izrazio
 
Odgovor na temu

dimke7even
Aleksandar Dimic
Beograd

Član broj: 131437
Poruke: 26
212.62.55.*



Profil

icon Re: Singleton, problemi sa nasledjivanjem za singleton25.01.2007. u 19:28 - pre 180 meseci
brate neizmerno ti hvala. Stvarno bravo!

topic is closed thanks to PC_Aleksadnar.... xexexe
7even respect
 
Odgovor na temu

pcaca
Aleksandar
Makedonija

Član broj: 5333
Poruke: 92
62.162.188.*



Profil

icon Re: Singleton, problemi sa nasledjivanjem za singleton26.01.2007. u 16:20 - pre 180 meseci
Citat:
dimke7even: brate neizmerno ti hvala. Stvarno bravo!

topic is closed thanks to PC_Aleksadnar.... xexexe

Nema problema!

Znaci dobro sam se izrazio Ipak srpski nije moj maternji jezik.
 
Odgovor na temu

[es] :: C/C++ programiranje :: Singleton, problemi sa nasledjivanjem za singleton

[ Pregleda: 3251 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

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