c++虚函数

虚函数使用目的是可以通过父类访问子类函数 ,创建一个父类可以调用子类同名函数(先通过指针将一个父类指针指向子类 ),使用virtual关键字修饰父类虚函数。

cpp 复制代码
 
#include<iostream>  
using namespace std;  
  
class A  
{  
public:  
    void foo()  
    {  
        printf("1\n");  
    }  
    virtual void fun()  //添加virtual表示该函数为虚函数,通过指针指向子类时会调用子类同名函数
    {  
        printf("2\n");  
    }  
};  
class B : public A  
{  
public:  
    void foo()  //隐藏:派生类的函数屏蔽了与其同名的基类函数
    {  
        printf("3\n");  
    }  
    void fun()  //多态、覆盖
    {  
        printf("4\n");  
    }  
};  
int main(void)  
{  
    A a;  
    B b;  
    A *p = &a;  //父类指针指向父类对象
    p->foo();  //输出1
    p->fun();  //输出2
    p = &b;      //父类指针指向子类对象
    p->foo();  //取决于指针类型,输出1
    p->fun();  //父类该函数为虚函数,所以会调用子类该同名函数,输出4,体现了多态
    return 0;  
}
相关推荐
闻缺陷则喜何志丹几秒前
【动态规划 AC自动机】P9188 [USACO23OPEN] Pareidolia S|普及+
c++·算法·动态规划·洛谷·ac自动机
cpp_25012 分钟前
P10250 [GESP样题 六级] 下楼梯
数据结构·c++·算法·动态规划·题解·洛谷
qq_370773095 分钟前
python实现人脸识别
开发语言·python·opencv
xiaoye-duck14 分钟前
深入解析 STL 优先级队列:从原理到实战
c++·算法·stl
-小麦子-14 分钟前
Python 里的 range 是干嘛的?
开发语言·python
lly20240615 分钟前
CSS 图像拼合技术
开发语言
承渊政道17 分钟前
C++学习之旅【C++继承概念指南与核心内容介绍】
c语言·开发语言·c++·笔记·学习·visual studio
天空属于哈夫克320 分钟前
Go 开发:企微外部群主动发送消息
开发语言·golang·企业微信
会周易的程序员29 分钟前
openplc runtime v4 安全
网络·c++·物联网·websocket·安全·https·ssl
不绝19134 分钟前
延迟函数/协同程序
java·开发语言