http://topic.youkuaiyun.com/t/20050526/11/4036982.html http://www.blogjava.net/lukangping/archive/2010/08/01/327693.html http://blogold.chinaunix.net/u2/75321/showart_1677907.html aggregation example: class A { public: A(B& b) { b_ = b; } void foo() { b_.SomeMethod(); } private: B& b_; // B* b_ }; compositon example: class A { public: A() { b_ = new B; } ~A() { delete b_; b_ = NULL; } void foo() { b_-> SomeMethod(); } private: B* b_; };