#include #include using namespace std; class Test { public: Test(int a = 0) : m_a(a) { } ~Test( ) { cout<<"Test object is destroyed whose value is = "< m_spToB; }; //********************************************************************************************************* class B { public: B() { } ~B() { cout<<"DestructorB is called"< m_spToA; }; //********************************************************************************************************* class D; class C { public: C() { } ~C() { cout<<"DestructorC is called"< m_wpToD; }; //********************************************************************************************************* class D { public: D() { } ~D() { cout<<"DestructorD is called"< m_wpToC; }; //*********************************************************************************************************