Double inclusion mais une seule possible.
Bonjour,
je suis face à un problème :
J'ai une classe A, qui fonctionne :
Code:
1 2 3 4 5 6 7 8 9
|
#ifndef A_HPP
#define A_HPP
//A.hpp
class A
{
/*...*/
}
#endif |
Et je veux l'utiliser dans mon main
Code:
1 2 3 4 5 6
| #include "A.hpp"
int main()
{
/* ... */
return 0;
} |
Donc ca, super ca fonctionne.
Maintenant j'ai une deuxieme classe, B, qui a besoin de A :
Code:
1 2 3 4 5 6 7
|
//A.hpp
#include "A.hpp"
class B {
private :
A m_ObjetA;
}; |
Et ca ne marche pas, c'est normal, le main inclut déjà une fois A et la protection anti-multi-inclusions empêche d'inclure plus d'une fois.
La seule solution est d'enlever la protection, mais dés que je l'enleve, ca ne marche plus car dans mon programme la classe A est*en collision avec une autre classe et ca crée une inclusion en boucle ...
Comment je dois faire pour inclure A dans B sans casser la protection anti inclusions multiples ?
Merci