10. december 2002 - 18:45Der er
9 kommentarer og 1 løsning
Dbl.rettet associering
Jeg skal implementere en dobbelt-rettet associering i cpp (Klasse1 peger på Klasse2 og omvendt). For at jeg kan have private variable der peger mod de to klasser, skal jeg #include header filen til den anden klasse, men på compile-time giver dette en uendelig løkke... Hvad gør man så?
int main(int argc, char **argv) { KlasseA klasseA; KlasseB klasseB;
return 0; }
Problemet opstår fordi compileren ikke kan finde udaf hvem der kommer først - er det hønen eller ægget ?
Hvad er årsagen til at du vil bruge en dobbelt association - kan du ikke lave om på designet ?
Synes godt om
Slettet bruger
13. december 2002 - 00:01#9
Undskyld, jeg burde nok selv have kommet med dét kode-eksempel, men det er netop i dén stil jeg ønsker implementationen. Jeg gør mig nogle alternative design-overvejelser, men det er ikke helt let. Jeg venter også på svar fra anden side, så jeg venter lige med de radikale re-design :o) Tak for din tid, soreno - det er rart når folk gider hjælpe!
Synes godt om
Slettet bruger
15. december 2002 - 12:10#10
Efter svar fra min vejleder, følger hermed min løsning..... Læg mærke til der er brugt pointer (*) til associering til den anden klasse - og at der i hver klasse er tilføjet en erklæring af den anden...
class KlasseA; class KlasseB { public: KlasseB(); ~KlasseB(); private: KlasseA *obj; };
KlasseB::KlasseB() {} KlasseB::~KlasseB() {}
#endif
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.