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 );
}
相关推荐
鱼子星_6 分钟前
【C++】string(上):string的基本使用
c++·笔记·字符串
咸鱼翻身小阿橙9 分钟前
多线程解析
java·开发语言
AOwhisky20 分钟前
Python 学习笔记(第四期)——字符串:格式化、操作与文本处理——核心知识点自测与详解
开发语言·笔记·python·学习·列表·元组·字典
@@@@@@@@541 小时前
JavaScript 的缺点与 TypeScript 的弥补
开发语言·javascript·typescript
神仙别闹1 小时前
编写基于C++ Huffman 算法的无损压缩程序和解压程序
java·c++·算法
এ慕ོ冬℘゜1 小时前
深度解析 JavaScript:赋予 Web 灵魂的“全栈语言”
开发语言·前端·javascript
炸膛坦客1 小时前
单片机/C/C++八股:(二十三)#define 和 typedef 的区别
c语言·c++·单片机
汤米粥1 小时前
Python调用百度搜索触发安全验证
开发语言·python
影寂ldy2 小时前
C# 五大加密算法全套实战(AES/DES对称、RSA非对称、MD5/SHA256哈希)
开发语言·c#·哈希算法
旖-旎2 小时前
《LeetCode 646 最长数对链 || LeetCode 1143 最长公共子序列》
c++·算法·leetcode·动态规划