C++面向对象复习要点:填空题详解与概念梳理

版权申诉
0 下载量 143 浏览量 更新于2024-06-29 收藏 813KB PDF 举报
C++面向对象复习题答案版要点概要: 1. C++中的基本数据类型包括字符(char)和整型(int long),其中int long类型可以使用signed修饰符来指定其有符号或无符号性质。在函数参数传递中,数组、指针和引用都是常见的选择,其中引用可以实现参数值的传递。 2. 函数调用效率优化的一个常见策略是使用内联函数(inline),通过在函数类型前添加inline关键字,让编译器直接在调用位置替换函数体,减少函数调用的开销。 3. 面向对象编程的四大特性包括抽象(Abstraction)、封装(Encapsulation)、继承(Inheritance)和多态(Polymorphism)。继承允许子类继承基类的属性和行为,而多态则支持通过接口调用不同的实现。 4. 拷贝构造函数在对象初始化时自动调用,用于创建新对象时对已有对象数据的复制。默认情况下,它会逐个复制对象的数据成员。如果需要自定义行为,可以提供自己的拷贝构造函数。 5. 动态对象数组的创建需要与之匹配的构造函数,以便正确初始化每一个元素。如果缺少匹配的构造函数,编译器会报错。 6. 静态数据成员不属于任何特定对象,它们在类的整个生命周期中只有一份副本,所有对象共享。 7. 在C++中,重载函数的关键在于参数的个数、类型或返回类型不同,这样编译器才能区分不同的函数实现。 8. 友元(Friend)允许类间访问私有或保护成员,但过度使用会破坏封装性,因为友元函数不是类的一部分,可能导致代码难以管理和维护。 9. 预编译指令主要包括文件包含(#include)、宏定义(#define)和条件编译(#if、#ifdef等),用于控制编译过程中的代码包含和条件编译。 10. 静态成员函数没有隐含的this指针,因此它们只能直接操作静态数据成员,无法访问非静态成员。 11. C++中的参数传递方式有两种:值传递(将函数参数的副本传入)和地址传递(将函数参数的地址传入),后者允许修改原变量。 12. 当调用非静态成员函数时,this指针会自动关联到调用它的对象实例上,提供访问当前对象属性的途径。 13. 拷贝构造函数使用引用作为参数,这是因为引用可以用来避免不必要的临时对象的创建。 14. 公有继承下,基类的数据成员在派生类中保持原有的访问权限。 15. 构造派生类对象时,遵循从基类到派生类的顺序,即首先执行基类的构造函数。 16. 计数类对象的数量时,通常使用静态数据成员,因为它们在整个程序生命周期中只有一个实例,方便统计。 17. 避免多重继承导致的基类数据成员重复,可以通过将基类声明为虚基类(virtual base class),使得派生类中只有一份基类的实例。 18. 抽象类是一种不能实例化的类,它们只能被其他类继承,且至少有一个纯虚函数(pure virtual function),用于确保继承者实现具体功能。 19. 构造函数中初始化对象的数据成员,特别地,内嵌对象、常量和引用需要在成员初始化列表中明确指定。 20. 在类定义中,保护成员(protected)仅对其所在类及派生类可见,不能从外部直接访问。