effective c++:条款09:绝不在构造和析构过程中调用虚函数;条款10:令operator=返回一个reference to *this

1.构造函数与析构函数中的虚函数不是虚函数 在构造派生类对象时,首先构建基类对象,在执行基类的构造函数时,如果构造函数中有虚函数且是多态的话就会调用派生类中相应的虚函数,但派生类对象还没被初始化,调用就会出错。所以构造函数中的虚函数不能是多态。 但实际上,在构建派生类中的基类对象时,对象的类型是base class而不是derived class,不只是虚函数会被编译器解析到base class,
相关文章
相关标签/搜索