读书人

为什么这段代码的异常之处在语句3处

发布时间: 2012-09-14 23:00:49 作者: rapoo

为什么这段代码的错误之处在语句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的函数...

读书人网 >C++

热点推荐