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:多态的分类:
有两种类型的多态性:
- 编译时的多态性。编译时的多态性是通过重载来实现的。
- 运行时的多态性。运行时的多态性是通过虚成员实现的。