首页 > 电脑常识 > 云计算

final,遗失的子类析构函数

后台-系统设置-扩展变量-手机广告位-内容正文底部

这里写目录标题

  • final
      • 遗失的子类析构函数

final

用来修饰类,让该类不能被继承
理解:使得该类终结!

class XiaoMi {
public:
	XiaoMi(){}
};

class XiaoMi2 final : public XiaoMi  {
	XiaoMi2(){}
};

class XiaoMi3 : public XiaoMi2 {  //不能把XiaoMi2作为基类

};

用来修饰类的虚函数,使得该虚函数在子类中,不能被重写
理解:使得该功能终结!

class XiaoMi {
public:
	virtual void func() final;
};

void XiaoMi::func() { //不需要再写final
	cout << "XiaoMi::func" << endl; 
}

class XiaoMi2 : public XiaoMi  {
public:
	void func() {}; // 错误!不能重写func函数
};

遗失的子类析构函数

【注意】
为了防止内存泄露,最好是在基类析构函数上添加virtual关键字,使基类析构函数为虚函数
目的在于,当使用delete释放基类指针时,会实现动态的析构:
如果基类指针指向的是基类对象,那么只调用基类的析构函数
如果基类指针指向的是子类对象,那么先调用子类的析构函数,再调用父类的析构函数
等效于上一种情况(该方式不推荐)

文章来源:https://blog.csdn.net/m0_46376834/article/details/117187459

后台-系统设置-扩展变量-手机广告位-内容正文底部
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。
本文地址:https://www.jcdi.cn/yunjisuan/30862.html

留言与评论(共有 0 条评论)
   
验证码:
后台-系统设置-扩展变量-手机广告位-评论底部广告位

教程弟

https://www.jcdi.cn/

统计代码 | 京ICP1234567-2号

Powered By 教程弟 教程弟

使用手机软件扫描微信二维码