当前位置: 首页> 房产> 建筑 > vs网页设计教程_邢台最新通告今天_百度免费发布信息平台_网络广告营销典型案例

vs网页设计教程_邢台最新通告今天_百度免费发布信息平台_网络广告营销典型案例

时间:2025/7/12 10:42:24来源:https://blog.csdn.net/weixin_43459437/article/details/143276448 浏览次数:0次
vs网页设计教程_邢台最新通告今天_百度免费发布信息平台_网络广告营销典型案例

虚析构函数

虚函数表指针初始化

虚函数指针(通常称为虚表指针或vptr)在对象的构造过程中创建。在对象实例化时,具体的过程如下:

  1. 内存分配:当你创建一个对象时,首先会为该对象分配内存。
  2. 基类构造函数执行:如果对象是派生类的实例,首先会调用基类的构造函数。在这个阶段,虚函数指针会被初始化为指向基类的虚表。
  3. 派生类构造函数执行:接着,派生类的构造函数会被调用。在这个阶段,虚函数指针会被更新为指向派生类的虚表。

哪些函数不能成为虚函数

  • 构造函数
  • 静态成员函数

​ 静态成员方法不依赖对象

析构函数可以成为虚函数

class Base {
public:Base(int data) : ma_(data) {}virtual void show() { cout << "Base::show()" << endl; }void show(int) { cout << "Base::show(int)" << endl; }virtual ~Base() { cout << " ~Base()" << endl; }
protected:int ma_;
};
class Drived : public Base {
public: Drived(int data):Base(data), mb_(data){}void show() { cout << "Drived::show()" << endl; }~Drived() { cout << "  ~Drived()" << endl; }
private:int mb_;
};
int main()
{Base* p = new Drived(10);delete p;}

当delete p的时候,有只析构基类不析构派生类的风险。所以这个时候需要将基类的析构函数实现成虚析构函数

关键字:vs网页设计教程_邢台最新通告今天_百度免费发布信息平台_网络广告营销典型案例

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: