C++ 重载选择题练习 3

2025年5月5日 | 阅读 2 分钟

1. 在 C++ 中,声明一个友元函数来重载二元 + 运算符的最佳方式是什么?

  1. A operator+(A, A);
  2. A operator+(const A&, const A&);
  3. A operator+(A&);
  4. A operator+(const A&);
 

说明

正确答案是选项 (b)。用于重载二元 + 运算符的友元函数应声明为带有两个参数,两者都通过常量引用传递。


2. 哪个关键字用于将运算符重载为非成员函数,但仍能访问私有成员?

  1. static
  2. friend
  3. virtual
  4. 内联
 

说明

正确答案是选项 (a)。`friend` 关键字允许非成员函数访问类的私有成员以进行运算符重载。


3. 在 C++ 中,可以重载 `new` 和 `delete` 运算符吗?

  1. 是的
  2. 不能
  3. 两者
  4. 以上都不是
 

说明

正确答案是选项 (a)。在 C++ 中,`new` 和 `delete` 运算符可以重载以访问内存分配和释放。


4. 以下哪种语法重载了类的单目负号 (-) 运算符?

  1. A operator-(int);
  2. A operator-();
  3. A operator-() const;
  4. A operator-() &;
 

说明

正确答案是选项 (c)。单目负号运算符 `-` 被重载为无参数的 `const` 成员函数。


5. 对于只读访问,类中重载的下标运算符 `[]` 的返回类型是什么?

  1. int
  2. int&
  3. const int&
  4. int*
 

说明

正确答案是选项 (c)。由于下标运算符具有只读访问权限,因此它必须返回元素类型的常量引用。


6. 关于函数调用运算符 `()` 重载,以下哪项陈述是正确的?

  1. 它不能被重载。
  2. 它必须是友元函数。
  3. 它允许对象像函数一样使用。
  4. 它只能在派生类中重载。
 

说明

正确答案是选项 (c)。函数调用 `()` 运算符可以重载,以允许对象像函数一样使用。