首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

为什么这段代码的异常之处在语句3处,报错却在语句4行?

2012-09-14 
为什么这段代码的错误之处在语句3处,报错却在语句4行???struct test{test (int){}test (int){}void fun(){

为什么这段代码的错误之处在语句3处,报错却在语句4行???
struct test
{
  test (int){}
  test (int){}
  void fun(){}
}

int main()
{
  test a(1);//语句1
  a.fun(); //语句2
  test b(); //语句3
  b.fun(); //语句4
}

为什么这段代码的错误之处在 语句3 处,报错却在 语句4 行???

是什么原理???

[解决办法]
我以前也遇到过这样的问题;
test b(); //语句3
b.fun(); //语句4
 你以为你b是一个test对象? 你错了...
特么的 他居然是一个函数的声明 不管你信不信 他就是这样的 哪怕你test里有一个无参的构造函数 他还是一个返回值为test的函数...
[解决办法]
我同意这种说法,看到“test b();”的第一反应就是函数声明

探讨
我以前也遇到过这样的问题;
test b(); //语句3
b.fun(); //语句4
你以为你b是一个test对象? 你错了...
特么的 他居然是一个函数的声明 不管你信不信 他就是这样的 哪怕你test里有一个无参的构造函数 他还是一个返回值为test的函数...

热点排行