pb fichier include pour classes dérivées
Bonjour,
J'ai des pb qd j'utilise les include au niveau des classes dérivées.
Dans un premier fichier.h je déclare la classe de base:
Code:
1 2 3 4 5 6
| #ifndef BASED_H_
#define BASED_H_
#include <iostream>
template <typename T>
class based{};
#endif /*BASED_H_*/ |
Dans un deuxième fichier la classe dérivée n°1:
Code:
1 2 3 4 5 6 7 8 9
| #ifndef DERIVED1_H_
#define DERIVED1_H_
#include "based.h"
//#include "derived2.h"
class derived1 : public based<int>{
public:
//friend derived2 g1(derived1){derived2 h;return h;};
};
#endif /*DERIVED1_H_*/ |
Dans un troisième fichier la classe dérivée n°2:
Code:
1 2 3 4 5 6 7 8 9
| #ifndef DERIVED2_H_
#define DERIVED2_H_
#include "based.h"
#include "derived1.h"
class derived2 : public based<int>{
public:
friend derived1 g2(derived2){derived1 h;return h;};
};
#endif /*DERIVED2_H_*/ |
Ce programme compile cependant si dans mon deuxième fichier je choisi de mettre la ligne #include "derived2.h" gcc me donne comme erreur :
../derived2.h:11: error: ‘derived1’ does not name a type
Est-ce que cela provient d'une mauvaise gestion des fichiers d'entête?
Comment je peux faire pour éviter cette erreur?
Merci pour votre réponse