23. december 2003 - 20:54Der er
11 kommentarer og 1 løsning
class singleton static attribut
Hej, jeg vil gerne oprette en klasse(CModerKlasse) som har en pointer af typen CModerKlasse. Denne pointer skal være static (static CMinModerKlasse* _instance;). Det er fordi jeg gerne vil bruge Singleton pattern. Idéen er nu at alle de klasser som arver fra CModerKlasse, hver især skal have en static pointer af typen CModerklasse, fordi hver af disse klasser skal opføre sig som Singletons. Men de får ikke hver deres pointer. Både klasse "CArving1" og "CArving2" deles om den samme statiske pointer, men de skal have en hver. Jeg kunne sagtens løse problemet ved at oprette en statisk pointer i hver af klasserne "CArving1" og "CArving2" , men findes der ikke en smartere måde, således at pointeren kan erklæres i CModerKlasse? /****************************************/ class CModerKlasse { public: CMinModerKlasse(); static CMinModerKlasse* Instance(); static CMinModerKlasse* _instance; }; /****************************************/ class CArving1 : public CModerKlasse { CArving1(); } /****************************************/ class CArving2 : public CModerKlasse { CArving2(); }
Med template mener jeg template funktionaliteten i C++, hvor man bl.a. kan lave en template og bruge den til at oprette forskellige klasser udfra samme kode.
ok, tak skal du have. Det ser lige lidt nyt ud, men jeg tror godt jeg er lidt med. Hvad nu hvis jeg i én enkelt af klasserne ville have en funktion, måske beregn_dit_og_dat()? Giver templates også rum for den slags?
ok, du har ret, det er lidt svært. Jeg tror bare at det forvirrer mere end det gavner. Jeg holder mig bare til min oprindelige løsning med at erklære _instance i hver af arvingerne. Men det med templates ser da spændende ud alligevel. :-)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.