C++ 重载选择题练习 5

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

1. 以下代码的输出将是什么?

  1. 4 + 6i
  2. 3 + 2i
  3. 4 + 4i
  4. 4 + 3i
 

说明

正确答案是选项 (a)。+ 运算符被重载,用于将两个 Complex 对象的实部和虚部相加。结果是一个新的 Complex 对象,其实部为 4,虚部为 6。


2. 以下代码的输出是什么?

  1. double, double: 2.5, 1.1
  2. int, int: 2, 0
  3. 编译错误
  4. 运行时错误
 

说明

正确答案是选项 (a)。func(double, double) 重载函数被调用时只传入了一个参数 2.5。之后,第二个参数使用了默认值 1.1。


3. 在 C++ 中,哪个运算符不能被重载?

  1. +
  2. =
  3. &&
  4. ()
 

说明

正确答案是选项 (c)。逻辑运算符 && 和 || 不能被重载。= 运算符和 () 函数调用运算符可以被重载。


4. 下列代码的输出是什么?

  1. Integer: 10 \n Double: 10.5
  2. Integer: 10 \n Integer: 10
  3. Double: 10 \n Double: 10.5
  4. Double: 10 \n Integer: 10.5
 

说明

正确答案是选项 (a)。print 函数针对 int 和 double 进行了重载。当调用 print(10) 时,调用的是 int 版本;而当调用 print(10.5) 时,调用的是该函数的 double 版本。


5. 下列代码的输出是什么?

  1. 6
  2. 5
  3. 编译错误
  4. 未定义行为
 

说明

正确答案是选项 (a)。operator++(int) 是后缀递增运算符。它返回递增前的值。在 i++ 之后,i 递增到 6,然后被打印出来。


6. 以下哪种是为用户定义类重载 << 运算符的正确方式?

  1. 作为类的成员函数。
  2. 作为类的友元函数。
  3. 作为类的静态成员函数。
  4. b) 和 c) 都是。
 

说明

正确答案是选项 (b)。用于输出流的 << 运算符需要访问 ostream 对象,而该对象不是类的成员。因此,它应该作为友元函数被重载。


7. 以下代码的输出将是什么?

  1. 10
  2. 编译错误
  3. 运行时错误
  4. 未定义行为
 

说明

正确答案是选项 (a)。<< 运算符被正确地重载为友元函数。它打印出 Integer 对象的值。


8. 以下哪项不是函数重载的有效理由?

  1. 对不同类型的数据执行类似的操作。
  2. 避免为不同的功能使用相同的名称。
  3. 提高代码的清晰度和可维护性。
  4. 通过对不同数据类型使用不同的算法来提高整体性能。
 

说明

正确答案是选项 (b)。函数重载通常用于对多种类型的数据执行类似的操作,从而提高代码的清晰度和可维护性,而不是为了避免为不同的功能重用相同的名称。


下一个主题面试题