C++编程复习:核心概念与试题解析

需积分: 9 27 下载量 29 浏览量 更新于2024-08-01 1 收藏 206KB DOC 举报
"这是一份关于C++的复习题,涵盖了C++的基础知识,包括数据类型、函数、面向对象特性、构造函数、静态成员、重载函数、友元、预编译指令、成员函数、参数传递、对象初始化、继承、计数器、抽象类和保护成员等概念。" 以下是这些知识点的详细说明: 1. C++中的基本数据类型分为内置类型(如int, char, float等)和用户自定义类型(如类class)。 2. 使用`inline`关键字可以优化小而频繁调用的函数,降低函数调用的开销。 3. 面向对象的四大特性是抽象、封装、继承和多态。 4. 缺省的拷贝构造函数执行的是逐个成员的浅复制。 5. 动态分配对象数组时,需要匹配默认的无参构造函数。 6. 静态数据成员是所有对象共享的,因此被所有对象共用一份拷贝。 7. 重载函数的区别在于参数个数或参数类型不同,以便在不同的调用场景中产生不同的行为。 8. 友元破坏了类的封装性,因为它允许非成员函数或类访问私有和保护成员。 9. 预编译指令还包括条件编译(#ifdef, #ifndef, #else, #endif)和宏定义(#define)。 10. 静态成员函数没有隐含的`this`指针,无法访问非静态成员。 11. 函数参数传递还有引用传递(&)。 12. 非静态成员函数的`this`指针指向调用它的对象实例。 13. 拷贝构造函数使用已存在的对象(通常是临时对象)初始化新对象。 14. 公有继承下,基类数据成员保持原有访问权限。 15. 构造派生类对象时,首先调用基类的构造函数。 16. 统计对象个数通常通过静态成员变量实现。 17. 为避免重复继承导致的数据冗余,可将基类声明为虚基类(virtual base class)。 18. 不能定义对象的类称为抽象类,至少包含一个纯虚函数。 19. 对象初始化时,内嵌对象、静态数据成员和const常量成员需要在构造函数初始化列表中初始化。 20. 保护成员对派生类是可访问的,对外部代码是不可访问的。 21. `setprecision()`用于设置输出精度,`hex`用于设置输出为十六进制。 22. 如果`s`是`int`类型,且`s=6`,那么`s`的二进制表示取决于机器的字长。 这些题目覆盖了C++编程的核心概念,是学习和复习C++语言的良好材料。通过解答这些题目,开发者可以检验自己对C++的理解程度,并巩固关键知识点。