编译时多态

论坛 期权论坛 脚本     
匿名技术用户   2020-12-28 15:14   11   0

1:什么是运算符重载:就是对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型。


2:什么是多态:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。在运行时,可以通过指向基类的指针,来调用实现派生类中的方法。

3:运算符重载的规则: C++中的运算符除了少数几个之外,全部可以重载,而且只能重载C++中已有的运算符。
重载之后运算符的优先级和结合性都不会改变。

运算符重载是针对新类型数据的实际需要,对原有运算符进行适当的改造。一般来说,重载的功能应当与原有功能相类似,不能改变原运算符的操作对象个数,同时至少要有一个操作对象是自定义类型。

不能重载的运算符只有五个,它们是:成员运算符“.”、指针运算符“*”、作用域运算符::“sizeof”、条件运算符?:

4:什么是插入运算符:C++的流插入运算符“<<”和流提取运算符“>>”是C++在类库中提供的,所有C++编译系统都在类库中提供输入流类istream和输出流类ostream。cin和cout分别是istream类和ostream类的对象。在类库提供的头文件中已经对“<<”和“>>”进行了重载,使之作为流插入运算符和流提取运算符,能用来输出和输入C++标准类型的数据。因此,凡是用“cout<<”和“cin>>”对标准类型数据进行输入输出的,都要用#include 把头文件包含到本程序文件中。

5:什么是重载:重载就是一个函数名对应着多个功能不一函数体,

6:重载函数为什么不能返回值来区分: 我个人的理解是:
以返回值来区分,会引入上下文关连

如果在调用时不指定返回值的类型,编译器将无法选择调用哪个函数

7:什么是重定义:定义是指派生类中的函数屏蔽了基类中相同名字的函数

  • 派生类中的函数与基类中函数的名字相同,但参数不同,不管有无virtual, 基类中的函数被覆盖

  • 派生类中的函数与基类中函数的名字相同,参数也相同,但无virtual关键字,基类中的函数被覆盖


8:多态有什么作用:多态技术允许将父类设置成和他的一个或更多的子对象相等。

9:为什么要引入抽象函数和纯虚函数:为了方便使用多态特性

- 在很多情况下,基类本身生成对象是不合理的。

10:多态的分类:

有两种类型的多态性:

  • 编译时的多态性。编译时的多态性是通过重载来实现的。
  • 运行时的多态性。运行时的多态性是通过虚成员实现的。



分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP