博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++:构造函数和析构函数能否为虚函数
阅读量:4673 次
发布时间:2019-06-09

本文共 348 字,大约阅读时间需要 1 分钟。

C++:构造函数和析构函数能否为虚函数?

简单回答是:构造函数不能为虚函数,而析构函数可以且常常是虚函数。

(1) 构造函数不能为虚函数

       编译器会为每个含有虚函数的类创建一个虚函数表,在创建对象时会创建一个虚函数表指针指向虚函数表。如果构造函数是虚函数,则需要用对象来调用构造函数,构造函数之前对象还不存在,因此构造函数不能为虚函数。

(2)析构函数可以是虚函数

      当基类对象的指针指向派生类对象,若析构函数不为虚函数,delete基类对象的时候,只会调用基类的析构函数,不会调用派生类的析构函数,这样会造成内存泄漏。(若果析构函数是虚函数,则会先调用派生类的析构函数然后在调用基类的析构函数。)

转载于:https://www.cnblogs.com/dingou/p/10281154.html

你可能感兴趣的文章
RSA算法了解
查看>>
yii2 password hash生成与验证方法
查看>>
JS与PHP通过RSA加密传输密码
查看>>
Yii2 RBAC
查看>>
Yii2学习整理
查看>>
关于SQL_MODE的那些事
查看>>
ORM介绍
查看>>
Yii2助手函数
查看>>
yii2之DetailView小部件
查看>>
My97DatePicker日期插件
查看>>
yii2相关前台组件
查看>>
Yii2引入css和js文件
查看>>
control-lable的用法
查看>>
bootstrap元素居中
查看>>
Composer常用的命令整理
查看>>
Yii2 文件上传
查看>>
前端面试题
查看>>
Yii2之GridView部件
查看>>
Yii2 composer报错处理
查看>>
Yii 2.0 rules 验证规则大全
查看>>