首页 > 试题广场 >

以下代码是哪一句可能导致的编译错误? #include

[单选题]
以下代码是哪一句可能导致的编译错误?
#include <iostream>
using namespace std;
class Test
{
public:
	Test() { cout << "i like zk"; }
	Test(int) { cout << "i like wangyi"; }
	void exe() { cout << "this is my choice"; }
};
int main()
{
	Test a(1);//1
	a.exe();  //2
	Test b(); //3
	b.exe();  //4
	Test c;   //5
	c.exe();  //6
        return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
Test b();  声明了一个函数返回类型为 Test ,参数为空的函数,函数名字为 b() ;
编辑于 2018-06-16 14:45:06 回复(0)
对于类而言: 栈上创建的对象,如果有默认拷贝构造函数,就不要加括号,即Test b; 如果加了括号会被编译器误认为是函数声明,如:Test b(); 返回类型为Test ,函数名为b,形参为空。
编辑于 2020-12-04 00:23:12 回复(0)
3只是声明了一个函数,是正确的。4才会报错吧?
发表于 2022-05-28 17:32:47 回复(3)
乱搞,明明选第四个
发表于 2022-12-05 19:50:08 回复(0)
垃圾题目,真正错误的是4,但是按题意3是出错的关键,但是老子咋知道你到底想搞啥啊,垃圾题目
发表于 2022-06-13 20:20:45 回复(1)

应该是
Text b;
b.exec();
发表于 2019-08-05 09:46:28 回复(0)
3系统认为是函数声明,没保存,但是4就出错了~
发表于 2021-05-30 18:41:22 回复(0)
这题答案有问题,应该是第四句有问题,第三句不会报错
发表于 2022-09-30 13:06:27 回复(0)
这题不应该选4吗,3被认为是声明,然后到4时,编译器找不到这个b

发表于 2022-09-23 18:28:38 回复(0)
实际编译是这样啊
发表于 2022-09-15 21:13:50 回复(0)
不是做过一次这个题目嘛?上次选 4 现在为什么又让选3呢?
发表于 2023-11-30 16:41:16 回复(0)
艹蛋的题目
发表于 2023-03-19 22:49:58 回复(0)
其实错的是4,3只是一个函数声明,没有错。
发表于 2022-06-10 08:58:05 回复(0)

***搞我是吧

就是选4

编辑于 2022-06-05 17:37:58 回复(0)
要注意和new创建的区别
发表于 2022-02-22 14:41:11 回复(0)