C++ 基础 --多态

多态

多态的概念

当完成某个行为时,不同的对象去完成,会有不同的状态

举个小栗子:买票这个行为,学生买会有打折,普通人买全价票,军人可以优先购票 —多态性为

多态分为静态多态和动态多态,其中静态多态就是我们所熟知的函数重载。这里静态的含义是指:在编译期间完成的事件
而我们今天主要了解的是动态多态,也就是在进程运行期间的多态。

多态的定义

多态是不同继承关系的类对象,去调用同一函数,产生的不同行为状态。
比如Student 继承了 Person , student对象半价,person全价。

在继承中,构成多态有两个条件:

  • 必须要用基类指针或者引用调用虚函数
  • 被调用的函数必须是虚函数,且派生类 必须要对基类的虚函数进行重写
    在这里插入图片描述

这里提到了几个概念,我们来一一解答

<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言实现多态的方式有两种常见的方法: 函数指针和结构体。函数指针是一种将函数作为参数传递或返回函数的地址的方法,可以实现不同函数根据需要动态调用的效果。结构体则是通过定义不同的结构体类型,并将它们作为参数进行传递,从而实现多态的效果。 在C语言中,使用函数指针实现多态可以通过定义一个函数指针类型,并将不同的函数赋值给该函数指针,从而在调用函数时可以根据需要动态选择调用不同的函数。以一种简单的示例来说明,假设我们有一个形状的结构体,其中包含一个面积计算函数指针。我们可以定义多个不同的函数来计算不同形状的面积,然后将这些函数赋值给同一个函数指针,这样就可以在调用计算面积函数时根据传入的形状选择相应的函数进行计算。 另一种实现多态的方式是使用结构体。我们可以定义一个基础的结构体类型,其中包含一个标识符字段和一个函数指针字段。然后,我们可以定义多个继承自基础结构体的派生结构体类型,每个派生结构体类型都有自己的标识符和函数指针。通过将不同的派生结构体作为参数传递给函数,并在函数内部根据传入的标识符选择相应的函数指针进行调用,就可以实现多态的效果。 总结起来,C语言中实现多态的方式可以通过函数指针和结构体来实现。函数指针可以根据需要动态选择调用不同的函数,而结构体则可以通过定义不同的派生结构体类型,并在函数中根据传入的标识符选择相应的函数指针进行调用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [C++教程 - How to C++系列专栏第0篇](https://blog.csdn.net/cat_bayi/article/details/132147427)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值