Le dichiarazione forward mi mandano un po fuori strada.
Partendo da questo esercizio ho cercato di ricreare le dichiarazioni anticipate ma con scarso successo.
Grazie
Lele
Perché Egg* layEgg(); è dichiarata in chicken.h
Perché Chicken* getParent(); è dichiatata in egg.hcodice:// chicken.h #ifndef CHICKEN_H #define CHICKEN_H //class Egg; //start #include "egg.h" class Chicken { public: Egg* layEgg(); }; //end #endif // #ifndef CHICKEN_H
codice:// egg.h #ifndef EGG_H #define EGG_H //start class Chicken; /* Forward class declaration. */ class Egg { public: Chicken* getParent(); /* Okay in declarations if they are pointers. */ }; //end #endif // #ifndef EGG_Hcodice:// egg.cpp #include "chicken.h" #include "egg.h" Chicken* Egg::getParent() { return new Chicken(); /* Requires definition of Chicken. */ }

Rispondi quotando