je veux que A possède une instance de B et que B possède un pointeur sur A
j'ai essayé la double inclusion:
Code main.cpp : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
#include<A.h>
int main()
{
    A a;
}
Code A.h : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#ifndef A_H
#define A_H
#include<B.h>
 
class B;
class A
{
    public:
        A();
    private:
        B m_b;
};
 
#endif // A_H
Code A.cpp : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
#include "A.h"
 
A::A()
{
    B m_b(this);
}
Code B.h : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#ifndef B_H
#define B_H
 
 
class A;
class B
{
    public:
        B(A* a);
    private:
        A* pA;
};
 
#endif // B_H
Code B.cpp : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
#include "B.h"
 
B::B(A* a)
{
    pA=a;
}
compilation: A.cpp:3:6: error: no matching function for call to 'B::B()'