class A;

class B{
public:
B(A *a){ pa = a; };
A *pa;
};

class A{
public:
~A(){ if(b) delete b; };
B *b;

Init(){ b = new B(this); };
};


int main()
{
A a;
a.Init();
return 0;
}

なんじゃこりゃあああああ