1 class 中的成员对象有默认构造函数
class foo { public: foo(); foo(int ) ... }
class bar { public: foo f; ... }
2 继承了带有默认构造函数的基类
class foo { public: foo(); foo(int ) ... }
class bar : public foo{ ... }
3 声明或继承了虚函数
class foo { public: virtual void f(); ... }
class bar : public foo{ ... }
class ttt{public: virtual void g();}
4 虚继承了基类(不论一个还是多个)
class foo { ...}
class bar : virtual public foo{ ... }
http://baike.baidu.com/link?url=um63amhVqm9H5T6RG3cIktpHz_B5cB-HMs6NjnKEQ7EwrwlTLVlT1pdOE2QDqcCmzxk3RF3uLp-SaO09zm6Igq