| #ifndef A_H | |
| #define A_H | |
| #include <cstdio> | |
| #include <memory> | |
| class A { | |
| public: | |
| A(int value) : m_a_value(value) {} | |
| A(int value, A *client_A) : m_a_value(value), m_client_A(client_A) {} | |
| virtual ~A() {} | |
| virtual void doSomething(A &anotherA); | |
| int Value() { return m_a_value; } | |
| private: | |
| int m_a_value; | |
| std::auto_ptr<A> m_client_A; | |
| }; | |
| A *make_anonymous_B(); | |
| A *take_A(A *a); | |
| #endif |