Jeg har det problem at jeg har en base class som ser sådan ud:
class BASE{ //Init };
og en derived således:
class FUNCS : public BASE { //init };
Og de ligger i hver deres header fil. Så er det at jeg skal bruge nogle funktioner fra FUNCS klassen. Dette har jeg så forsøgt ved at #include FUNCS headeren i BASE headeren, og så definere FUNCS klassen i BASE klassen således:
class BASE { public: FUNCS pFuncs; };
Men det vil kompileren ikke være med til, også selvom jeg prøver med friend class FUNCS pFuncs; den giver mig fejlen:
'FUNCS' is used as a type, but is not defined as a type.
Kan i hjælpe mig med mit lille problem, ville jeg blive meget glad :-)
Umiddelbart virker det meget ulogisk at BASE klassen skulle indeholde en FUNCS.
Forudsat at du med "funktioner" netop mener funktioner så tror jeg at du skal:
* erklære BASE i base.h * erklære FUNCS i funcs.h * lade FUNCS arbe fra BASE * lade funcs.h include base.h * lade de "funktioner" være static metoder * lade base.cpp include funcs.h og kalde de static metoder
Ved godt det er en smule ulogisk, men jeg kalder nogle funktioner fra FUNCS klassen i min BASE klasse, og jeg orker ikke at lave det om lige nu. Men jeg prøver lige med de statiske metoder...
Jeg includede funcs.h i base.cpp, og erklærede FUNCS pFuncs; i den funktion hvor jeg brugte den. Jeg ville bare mene at man også kunne have erklærede den i base klassen, så man ikke behøvede at gøre det inde i funktionerne, men ligemeget, lidt beskidt kode har aldrig slået nogle ihjel :-)
Efter min mening burde du have lavet alle de funktioner du skal bruge fra FUNC classen "virtual" og pure virtual i BASE classen, så vil det hele være kommet af sig selv.
Efter min mening ligner det en recursiv definition, der kun kan opløses ved at lave FUNCS *pFuncs;
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.