C++面向对象做题总结

1、定义在class声明内的成员函数默认是inline函数

2、一旦一个类中的函数后加上const,就说明这是一个函数常量,它是不能改变类内的变量的。

3、image
4、组合(内嵌)和继承(派生 )都使得已有对象成为新对象的一部分,从而达到代码复用的目的。

5、image
image
6、类之间的关系具有传递性,A继承B,C继承B,那么B可以访问到A的成员,这叫类的传递性。

7、类之间的三种关系
①继承关系(is-a)
②组合关系(has-a)
③使用关系(use-a)

8、在基类中定义的静态成员,在整个体系中共享

9、友元函数不能被继承

10、基类指针、基类对象、派生类指针、派生类对象
image
image
当基类指针指向派生类对象时,利用基类指针调用派生类中与基类同名但被派生类重写后的成员函数,调用的是基类的成员函数

②当基类中有虚函数,并且派生类能覆盖虚函数时,基类指针调用派生类对象时,调用的是派生类的成员函数

11、①C++中,要实现动态联编,必须使用(基类指针)调用虚函数

②构造函数不能说明为虚函数。

③在C++中,根据this指针类型识别类层次中不同类定义的虚函数版本。

④虚析构函数的作用是:delete动态对象时释放资源

12、不能被重载的运算符

13、有两个运算符系统提供默认重载版本:=和&

14、①析构函数不能重载运算符

=是要求用成员函数重载的运算符

<<运算符要求用友元函数重载

④如果希望运算符的操作数(尤其是第一个操作数)有隐式转换,则重载运算符时必须使用友元函数

15、在C++中,运算符重载时选择使用成员函数还是友元函数
image
image
image
image
image
image
16、设有类A的对象Aobject,若用成员函数重载前置自增表达式,那么++Aobject被编译器解释为:

Aobject.operator++()

17、在C++中,如果在类中重载了函数调用运算符(),那么重载函数调用的一般形式为:

对象(表达式表)

18、设有类A的对象Aobject,若用友元函数重载后置自减表达式,那么Aobject- -将被编译器解释为:

operator- -(Aobject,0)

19、如果表达式++jk中的++和都是重载的友元运算符,则采用运算符函数调用格式,该表达式还可以表示为:

operator(operator++(j),k)

20、如果类A要重载插入运算符<<,那么重载函数参数表的形式一般定义为(ostream&,constA&)
21、
image
22、在一个类层次结构中,一个派生类可以对作为基类的模板提供实例化的类型参数

23、若一个类模板定义了静态数据成员,那么一个类模板实例化的每个对象都有自己的静态数据成员副本

24、一般函数不能声明为类模板的友元

25、在 C++ 中,函数模板不需要程序员手动实例化即可生成可执行代码。编译器会根据代码中对模板的实际调用自动完成实例化(隐式实例化)

26、调用全局变量时,::b

27、C++的隐形转换, char和int做加减运算会全部转成int

28、声明虚基类后,间接派生类调用构造函数,只调用虚基类一遍

29、只有虚函数时动态绑定的
30、
image
31、image
32、image
33、异常的头文件
【#include,不加头文件会导致异常无法抛出】
34、image
image
35、image
36、image

posted @ 2025-04-09 20:04  风归去  阅读(38)  评论(0)    收藏  举报