构造函数中的奇怪行为

tun*_*nuz 2 c++ parameters constructor

我有一个由几个字段组成的类,我有几个构造函数.我也有一个不带任何参数的构造函数,但是当我尝试使用它时:

int main {
    A a;
}
Run Code Online (Sandbox Code Playgroud)

编译器生成错误,而如果我像这样使用它:

int main {
    A a();
}
Run Code Online (Sandbox Code Playgroud)

没关系.那是什么?

谢谢

CB *_*ley 11

第一个main使用A的默认构造函数.第二个声明一个不带参数的函数,并返回一个A值,这可能不是你想要的.

那么A的定义是什么样的,编译器生成的错误是什么?

哦,你需要在main:的声明中提供参数列表int main() { //...,而不是int main { //...