#include <iostream>
using namespace std;
struct Foo
{
Foo() { }
Foo(int i) { int j = i; }
void fun(){ }
};
int main(void)
{
Foo a(10); //语句1
a.fun(); //语句2
Foo b(); //语句3
b.fun(); //语句4 求解释为什么编译出错
return 0;
}
#include
using namespace std;
struct Foo
{
Foo() { }
Foo(int i) { int j = i; }
void fun(){ }
};
int main(void)
{
Foo a(10); //语句1
a.fun(); //语句2
Foo b(); //语句3
// b.fun(); //语句4 求解释为什么编译出错
return 0;
} 为什么这样就不报错?
这样相当于你定义了一个函数b,其返回值是Foo类型,没有参数。当然不会报错了。
本回答被网友采纳