C++的虚函数相关知识点(二)
来源:互联网 发布:yum search命令 编辑:程序博客网 时间:2024/05/18 22:42
2. 以下几种情况下虚函数的特性将失效
1)派生类没有重写该函数;
2)使用基类对象(包括将派生类强制转换成基类对象)调用虚函数;
示例代码如下:
其运行结果如下:
This is derivel
This is base
延伸知识点:强制类型转换将会在调用前生成一个临时目标类型的对象,调用完成后自动释放(析构)临时对象,示例代码如下:
运行结果如下:
未命名对象诞生了!
This is derivel
未命名对象的拷贝诞生了!
This is base
未命名对象的拷贝去了!
This is derivel
未命名对象去了!
3)在构造函数或析构函数中调用的虚函数与普通函数的调用规则相同,因为构造函数或析构函数只管当前类的构造或析构,在执行基类的构造函数时,派生类还未能完成构造,在执行基类的析构函数时,派生类对象已被析构了。
示例代码如下:
运行结果如下:
以下是在基类的构造函数中调用虚函数:
base::vf()
以下是在main函数中直接调用虚函数:
deriver::vf()
以下是在基类的普通函数中调用虚函数:
deriver::vf()
以下是在基类的析构函数中调用虚函数:
base::vf()
4)当明确指定函数的所属类时(使用“类名::函数名”方式调用时),将只调用指定函数,虚函数的特性将无效。这种情况常用于派生虚函数中需要执行基类代码同名函数时。
示例代码如下:
运行结果如下:
This is base
This is derivel
This is base
- C++的虚函数相关知识点(二)
- C++的虚函数相关知识点(一)
- C++(9):函数的一些知识点
- js中的open()函数相关的全部知识点
- C++primer知识点(二)
- C/C++知识点(二)
- Mysql To Charts(二)--相关知识点
- 三极管相关知识点释疑(二)
- C语言内存相关的一些知识点
- c语言char类型的相关知识点
- IOS-Objectiv-C(OC)相关知识点。
- C语言相关知识点
- C/C++的一些知识点归纳(二)
- 对话框知识点和函数(二)
- 集合框架相关知识点(二)
- 集合框架相关知识点(二)
- Objective-C知识点总结(二)
- C/C++知识点总结(二)
- Android 的Margin和Padding属性以及支持的长度单位
- VC 6 居然无法安装
- 开始做一个技术党~~留下我的学习经验~~
- 将DataTable中筛选中的结果保存到另外的DataTable
- 人妻管理 安装补丁 For win7 X64 运行问题
- C++的虚函数相关知识点(二)
- 函数参数传递是不是都会创建一个副本
- vim的安装
- wsprintf和swprintf区别(转)
- redis-lua(二): 遍历数据库
- Hibernate概述
- HDU 动态规划(46道题目)倾情奉献~
- Eclipse中SVN版本控制插件的安装和使用
- cx-extractor:基于行块分布函数的通用网页正文抽取:线性时间、不建DOM树、与HTML标签无关