什么是虚函数
最编程
2024-04-14 10:46:13
...
虚函数是指:在某基类中声明为virtual并在一个或多个派生类中被重新定义的成员函数,即被virtual关键字修饰的成员函数;格式为“virtual 函数返回类型 函数名(参数表) {函数体}”。
在某基类中声明为 virtual 并在一个或多个派生类中被重新定义的成员函数,用法格式为:virtual 函数返回类型 函数名(参数表) {函数体}
;实现多态性,通过指向派生类的基类指针或引用,访问派生类中同名覆盖成员函数。
简单地说,那些被virtual关键字修饰的成员函数,就是虚函数。
首先:强调一个概念定义一个函数为虚函数,不代表函数为不被实现的函数。定义它为虚函数是为了允许用基类的指针来调用子类的这个函数。定义一个函数为纯虚函数,才代表函数没有被实现。定义纯虚函数是为了实现一个接口,起到一个规范的作用,规范继承这个类的程序员必须实现这个函数。
例:
class A { public: virtual void foo() { cout<<"A::foo() is called"<<endl; } }; class B:public A { public: void foo() { cout<<"B::foo() is called"<<endl; } }; int main(void) { A *a = new B(); a->foo(); // 在这里,a虽然是指向A的指针,但是被调用的函数(foo)却是B的! return 0; }
登录后复制
这个例子是虚函数的一个典型应用,通过这个例子,也许你就对虚函数有了一些概念。它虚就虚在所谓“推迟联编”或者“动态联编”上,一个类函数的调用并不是在编译时刻被确定的,而是在运行时刻被确定的。由于编写代码的时候并不能确定被调用的是基类的函数还是哪个派生类的函数,所以被成为“虚”函数。 虚函数只能借助于指针或者引用来达到多态的效果。
以上就是什么是虚函数的详细内容,更多请关注php中文网其它相关文章!
上一篇: 深入了解 C++ 虚拟函数表
下一篇: C++虚函数
推荐阅读
-
ARP 协议有什么作用--ARP(AddressResolutionProtocol,地址解析协议)地址解析协议用于将计算机的网络地址(32 位 IP 地址)转换为物理地址(48 位 MAC 地址)[RFC826]。ARP 协议属于链路层协议,在以太网网络中,数据帧从一台主机传送到网络中的另一台主机时,是根据 48 位以太网地址(硬件地址)来确定接口的,而不是根据 32 位 IP 地址。内核(如驱动程序)必须知道目的地的硬件地址,才能发送数据。当然,点对点连接不需要 ARP 协议。 ARP 协议示例
-
什么是距离矢量路由协议
-
什么是 php 开发环境
-
什么是组播地址范围 - 组播地址分类
-
什么是边界网关协议(BGP)的路由过程?
-
什么是 GemFire?
-
什么是智能短信插件
-
什么是六西格玛绿带计划?
-
什么是 IMU 传感器?(I) 概述
-
什么是 vue3 的 CompositionAPI?