C++期末考试复习关键点解析

版权申诉
0 下载量 141 浏览量 更新于2024-06-29 收藏 706KB PDF 举报
"C++期末考试复习题 (2).pdf" C++是一种强大的面向对象的编程语言,其语法严谨,提供了丰富的特性来支持类、对象、继承、多态等概念。以下是对题目中涉及的C++知识点的详细解释: 1. **类的声明**:在C++中,类是封装数据和行为的结构。类声明中,数据成员的数据类型不能是`register`关键字,因为`register`是用于变量声明的,不是类成员。选项C正确,private、public、protected访问修饰符可以按任意顺序出现,但通常建议按照public、protected、private的顺序进行组织。选项D错误,没有明确访问修饰符的数据成员默认为private。 2. **类的成员**:类可以包含数据成员(变量)和成员函数(方法)。因此,选项C正确,一个类的定义中同时包含数据和函数的定义。 3. **成员函数的定义**:当在类定义体外定义成员函数时,需要使用作用域解析运算符`::`来指定函数属于哪个类。对于题目中的情况,正确的函数头是`int AA::a()`。所以选项A正确。 4. **指针访问对象成员**:通过指针访问类对象的数据成员使用箭头运算符`->`,如`px->a`。因此,选项C正确。 5. **运算符new**:`new`用于动态分配内存,可以创建对象和数组。选项A和B正确,表示new可以用于创建对象和数组。选项C也正确,创建对象时会调用构造函数。然而,选项D错误,用new创建的对象必须用`delete`释放内存,否则将导致内存泄漏。 6. **析构函数**:析构函数是类的一种特殊函数,用于在对象生命周期结束时清理资源。析构函数的名称以波浪线`~`开头,紧跟着类名,且无返回类型。因此,选项A错误,每个类只有一个析构函数;选项B错误,析构函数的名称有特定格式;选项C正确,析构函数不能指定返回类型;选项D错误,析构函数不接受参数。 7. **构造函数**:构造函数在创建对象时自动调用,用于初始化对象。因此,选项B正确,构造函数在创建对象时执行;选项A、C、D错误,它们描述的不是构造函数的执行时机。 8. **友元**:友元函数或友元类可以访问类的私有和保护成员,从而提高了代码的灵活性,但牺牲了封装性。因此,选项A正确,友元可以提高运行效率,因为它可以直接访问私有成员;选项B和C错误,因为友元减弱了封装性和数据隐藏;选项D与友元的作用无关。 9. **虚基类**:虚基类的目的是解决多重继承中的二义性问题。如果子类通过不同的路径继承了同一基类,不使用虚基类可能导致二义性。因此,选项B正确。 10. **纯虚函数**:纯虚函数是声明为`virtual`并设定为`=0`的函数,定义为虚函数强制子类实现它。选项B正确,`virtual void show() = 0;`是正确的声明方式。 11. **重载函数的选择**:在调用重载函数时,编译器基于函数名、参数列表(包括参数个数和类型)来决定调用哪个函数。返回类型不参与选择过程,因此选项B错误。 12. **引用传递**:函数`fun(int &a)`期望接收一个整型引用。选项C正确,`fun(&m);`传递了变量`m`的引用;选项A错误,不需要两次使用`&`;选项D错误,不是函数调用的语法。 这些知识点涵盖了C++的基础概念,包括类、对象、构造函数、析构函数、成员函数、指针操作、内存管理、继承、多态、重载以及引用等。掌握这些内容对于理解和编写C++程序至关重要。