class_18:多态

cpp 复制代码
#include <iostream>

using namespace std;

class RemoteCon{
public:
    virtual void openUtils()
    {
        cout<<"base:open "<<endl;
    }
};

class TvRemoteCon:public RemoteCon{
public:
    void openUtils () override
    {
        cout<<"TV open "<<endl;
    }
};

class LightCon:public RemoteCon{
public:
    void openUtils () override
    {
        cout<<"Light open "<<endl;
    }
};

void test(RemoteCon &base)
{
    base.openUtils();
}
int main()
{
    //父类的指针指向子类的对象
    RemoteCon *r = new TvRemoteCon;
    r->openUtils();

    RemoteCon *r1 = new LightCon;
    r1->openUtils();

    //父类的引用指向子类的对象
    TvRemoteCon tv;
    test(tv);//RemoteCon &base = tv
    return 0;
}
相关推荐
lsx2024061 分钟前
Java 泛型
开发语言
王老师青少年编程1 分钟前
2024年3月GESP真题及题解(C++七级): 俄罗斯方块
c++·题解·真题·gesp·csp·俄罗斯方块·七级
wzf@robotics_notes1 分钟前
振动控制提升 3D 打印机器性能
嵌入式硬件·算法·机器人
oioihoii8 分钟前
拆解融合:测试开发,一个关于“更好”的悖论
c++
jghhh0114 分钟前
基于MATLAB的可见光通信系统仿真实现
开发语言·matlab
机器学习之心19 分钟前
MATLAB基于多指标定量测定联合PCA、OPLS-DA、FA及熵权TOPSIS模型的等级预测
人工智能·算法·matlab·opls-da
xiaoqider25 分钟前
C++模板进阶
开发语言·c++
yaonoran26 分钟前
【无标题】
java·开发语言·变量
Loo国昌28 分钟前
【LangChain1.0】第八阶段:文档处理工程(LangChain篇)
人工智能·后端·算法·语言模型·架构·langchain
康小庄31 分钟前
浅谈Java中的volatile关键字
java·开发语言·jvm·spring boot·spring·jetty