Ciao a tutti!
Ho un problema con la direttiva include:
ho 4 file: FiguraGeometrica.h, Triangolo.h, Quadrato.h e Source.cpp.
i primi tre file contengono le intestazioni di tre classi omonime, inoltre sia Triangolo che Quadrato sono figlie di FiguraGeometrica. Ecco il codice:
FiguraGeometrica.h:
Triangolo.h:codice:class FiguraGeometrica { public: char* nome; void disegnaFigura(); };
Quadrato.h:codice:#include "FiguraGeometrica.h" class Triangolo : public FiguraGeometrica { public: void disegnaFigura(); };
Source.cpp:codice:#include "FiguraGeometrica.h" class Quadrato : public FiguraGeometrica{ };
quando eseguo Source mi dà il seguente errore:codice:#include "stdafx.h" #include "Triangolo.h" #include "Quadrato.h" #include "stdlib.h" void FiguraGeometrica :: disegnaFigura() { printf("Disegna figura geometrica!\n"); }; void Triangolo :: disegnaFigura() { printf("Disegna un triangolo!\n"); }; int _tmain() { FiguraGeometrica * fig=new FiguraGeometrica; Triangolo * tri=new Triangolo; Quadrato * quad=new Quadrato; tri->disegnaFigura(); system("PAUSE"); }
error C2011: 'FiguraGeometrica' : 'class' type redefinition
credo perché l'istruzione #include "FiguraGeometrica.h" viene incontrata più volte (essendo stata utilizzata sia in Triangolo.h che in Quadrato.h ). Come posso fare per evitare questo problema?
Grazie in anticipo!![]()

Rispondi quotando