父类的构造函数中最好不要调用虚函数
2010-12-27 09:20
253 查看
class Base{ public: int a; Base(){print();}; virtual ~Base(){ g_iCount += 1;} public: int getA(){} void setA(int i){} virtual void print(){cout<<"1"<<endl;} }; class Derive:public Base { public: Derive(){print();} ~Derive(){g_iCount += 2;} public: void print(){cout<<"2"<<endl;} }; void main() { Derive d ; Base *pb = &d; Derive *pd = &d; }
父类的构造函数中使用虚函数,在构造父类对象时,子类还未构造成功,因此,这时虚函数不起作用。
相关文章推荐
- C++ 《Effective C++ 》条款9:永远不要在构造函数或析构函数中调用虚函数
- 读书笔记 effective c++ Item 9 绝不要在构造函数或者析构函数中调用虚函数
- 不要在构造函数和析构函数中调用虚函数
- 不要在构造函数中调用虚函数
- C++不要在构造函数和析构函数中调用虚函数
- 为什么不要在构造函数中调用虚函数
- 为什么不要在构造函数中调用虚函数
- 不要在构造函数或析构函数里调用虚函数
- 【C++】不要在构造函数或析构函数内调用虚函数
- 不要在构造函数和析构函数中调用虚函数
- 为什么不要在构造函数中调用虚函数
- C++学习笔记-----不要在构造函数和析构函数中调用虚函数
- C++不要在构造函数和析构函数中调用虚函数
- C++构造函数的自动调用(调用一个父类的构造函数,有显性调用最好,否则就默认调用无参数的构造函数)——哲学思想:不调用怎么初始化父类的成员数据和VMT?
- 《Effective C++ 》条款9:永远不要在构造函数或析构函数中调用虚函数
- C++不要在构造函数和析构函数中调用虚函数
- 为什么不要在构造函数中调用虚函数
- 为什么不要在构造函数中调用虚函数
- 读书笔记 effective c++ Item 9 绝不要在构造函数或者析构函数中调用虚函数