C++助教篇3_Week2不完全知识点

多态的概念

字面理解:“多种状态”。在面向对象语言中,接口的多种不同的实现方式即为多态。可以类比为“打”这个字,可以说是“老师打同学”,是击打这个动作;还可以是“我去打酱油”,是舀取的意思;也可以是“打南边来了个喇嘛”,是“从”的意思。“打”即函数名,不同的意思就是不同功能的函数。

C++中的表现形式:

  • 函数的多态性:具有不同功能的函数可以用同一个函数名,这样就可以用一个函数名调用不同内容的函数。
  • 对象behavior的多态性:允许你将父对象设置成为一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。

系统实现的角度看,多态性分为静态多态性和动态多态性两类。两者区别在于静态多样性要求在程序编译时就知道调用函数的全部信息,又称为编译时的多态性;动态多态性则不在编译时确定调用的函数,而是在程序运行时才动态确定操作所针对的对象。

函数重载

C++中允许有多个拥有类似功能的同名函数的存在,但是这些同名的函数的参数个数类型或顺序这三个属性当中必须至少有一个与其余的同名函数存在差异。编译器可以通过名称修饰,找到与之相匹配的函数,从而实现不同的功能。这样一来,既减少了函数名的数量,又避免了名字空间的污染,也降低了程序员记忆的难度。需要注意的是只有函数返回值类型不同的函数不能作为重载函数。

函数重载的理解

  1. 函数重载是一种多态现象

  2. 编译原理—重载的函数符号表中生成的名称不一样。例如:

    // 生成@sum$qiii   
    int sum(int a,int b,int c );
    // 生成@sum$qii     
    int sum(int a,int b);        
    // 生成@sum$qfff @ + sum + q + f + f + f(float)
    float sum(float a
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值