1*dd5d7300SPavel Labath #ifndef A_H 2*dd5d7300SPavel Labath #define A_H 3*dd5d7300SPavel Labath 4*dd5d7300SPavel Labath #include <cstdio> 5*dd5d7300SPavel Labath #include <memory> 6*dd5d7300SPavel Labath 7*dd5d7300SPavel Labath class A { 8*dd5d7300SPavel Labath public: 9*dd5d7300SPavel Labath A(int value) : m_a_value(value) {} 10*dd5d7300SPavel Labath A(int value, A *client_A) : m_a_value(value), m_client_A(client_A) {} 11*dd5d7300SPavel Labath 12*dd5d7300SPavel Labath virtual ~A() {} 13*dd5d7300SPavel Labath 14*dd5d7300SPavel Labath virtual void doSomething(A &anotherA); 15*dd5d7300SPavel Labath 16*dd5d7300SPavel Labath int Value() { return m_a_value; } 17*dd5d7300SPavel Labath 18*dd5d7300SPavel Labath private: 19*dd5d7300SPavel Labath int m_a_value; 20*dd5d7300SPavel Labath std::auto_ptr<A> m_client_A; 21*dd5d7300SPavel Labath }; 22*dd5d7300SPavel Labath 23*dd5d7300SPavel Labath A *make_anonymous_B(); 24*dd5d7300SPavel Labath 25*dd5d7300SPavel Labath #endif 26