本文主要是介绍C++ virtual 使用和原理介绍 :推迟指针指向的决定,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
这篇博客适合已经学过的同学再次思考和回忆,对不了解编译原理和基本编程语言基础的学者不友好
文章目录
- virtual根本原理
- 什么函数可以是虚函数
- 虚析构函数
- virtual关键字的实现,动态绑定实现窥览
virtual根本原理
virtual 无论是函数,还是类继承中,他的真实功能就是推迟指针指向的决定,
将在编译期的决定推迟到运行时决定,于是就有了多态的实现,多态的原理便是运行时的动态绑定。
虚基类的继承是的类变量的指针可以推迟指向,而解决子类的二义性的问题以及存储浪费问题
编译期:虚函数的函数名符号指向是空的
运行期:虚函数的指针指向对象域,而不是类域
什么函数可以是虚函数
一般成员函数可以是
构造函数不能是虚函数
析构函数可以是虚函数
一般虚函数成员
声明:virtual return_type func_name(formal_parameter_list)
声明只能出现在类定义中的函数原型声明中
在派生类中可以对基类的成员函数覆盖(千万不要重写继承而来的非虚函数,因为达不到多态的效果)
这篇关于C++ virtual 使用和原理介绍 :推迟指针指向的决定的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!