zl程序教程

您现在的位置是:首页 >  后端

当前栏目

C++构造函数中调用虚函数

C++ 函数 调用 构造函数
2023-09-27 14:24:59 时间
谈谈关于构造函数中调用虚函数的情况,仅讨论单继承,不考虑虚拟继承和多重继承。 测试平台:VS2013 + Win7X64 一个例子:
首先讨论下对象d的构造情况。 1 先构造基类部分,调用基类Base的构造函数,这个时候,派生类部分还没有产生,这时候虚表应该是绑定基类的,自然调用的是Base::Func() 2 再构造派生类部分,这个时候,虚表发生变化,绑定在派生类上,调用Deri::Func() 虽然,在派生类中有重载Func这个函数,但是,在构造基类部分的时候,派生类的成员数据还没有初始化,如果是调用派生类中的Func,会造成错误,内存越界甚至崩溃。
高效学 C++|组合类的构造函数 设计好MyString类后,就可以像使用普通类型一样使用它了。例如,类的对象可以像普通的变量一样作为另一个类的数据成员。