Avatar billede tnd-dk Nybegynder
31. juli 2004 - 14:26 Der er 5 kommentarer

Defination af derived class INDEN i base class?

Halløjsa...

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 :-)
Avatar billede arne_v Ekspert
31. juli 2004 - 14:31 #1
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
Avatar billede tnd-dk Nybegynder
31. juli 2004 - 14:34 #2
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...
Avatar billede tnd-dk Nybegynder
31. juli 2004 - 14:40 #3
Okay, jeg gjorde noget andet...

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 :-)
Avatar billede laffe Nybegynder
31. juli 2004 - 20:42 #4
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.
Avatar billede segmose Nybegynder
02. august 2004 - 15:03 #5
Efter min mening ligner det en recursiv definition, der kun kan opløses ved at lave
FUNCS *pFuncs;
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester