C++基础 -25- 动态多态

静态多态在程序编译的时候,确定将要执行的状态。

动态多态在程序运行的时候,才能确定执行的状态。

下面举例实现动态多态

work函数接口通过传参不同做不同的工作

cpp 复制代码
#include "iostream"


using namespace std;

class person
{
    public:
    person()
    {

    }

    virtual void work()
    {
        cout << "没有工作" << endl;
    }
};

class police:public::person
{
    public:
    police()
    {

    }

    void work()
    {
        cout << "抓小偷" << endl;
    }
};

class nurse:public::person
{
    public:
    nurse()
    {

    }

    void work()
    {
        cout << "照顾病人" << endl;
    }
};

void work(person &a)
{
    a.work();
};


int main()
{
    nurse c;
    police cc;
    work( c );
    work( cc );
}
相关推荐
就这个java爽!2 分钟前
JAVA网络编程【基于TCP和UDP协议】超详细!!!
java·开发语言·网络·tcp/ip·udp·eclipse·idea
环能jvav大师11 分钟前
基于R语言的统计分析基础:使用dplyr包进行数据操作
大数据·开发语言·数据分析·r语言
float_com21 分钟前
【STL】stack,deque,queue 基础,应用与操作
c++·stl·极速入门
懒洋洋大魔王27 分钟前
7.Java高级编程 多线程
java·开发语言·jvm
=(^.^)=哈哈哈27 分钟前
Golang如何优雅的退出程序
开发语言·golang·xcode
学习使我变快乐29 分钟前
C++:用类实现链表,队列,栈
开发语言·c++·链表
茶馆大橘31 分钟前
【黑马点评】已解决java.lang.NullPointerException异常
java·开发语言
lmy_t35 分钟前
C++之第十二课
开发语言·c++
马剑威(威哥爱编程)38 分钟前
除了递归算法,要如何优化实现文件搜索功能
java·开发语言·算法·递归算法·威哥爱编程·memoization
我码玄黄1 小时前
THREE.js:网页上的3D世界构建者
开发语言·javascript·3d