#include<bits/stdc++.h>
using namespace std;
class A{
int x;
public:
A(){
x=10;
}
void show(){
cout<<x<<endl;
}
};
main(){
A a;
a.show();
}
在main()
函数中,当我以上述方式声明变量a
时,代码工作正常但如果我们声明变量A a()
编译器会出错。为什么会这样?我认为参数类型匹配没有问题。有人可以帮忙吗?
答案 0 :(得分:1)
因为A a()
不是变量声明而是函数原型声明。
答案 1 :(得分:0)
C ++ 11及更高版本通过通用初始值设定项解决了这个问题。您正在声明一个返回A的函数。如果您改为使用{}
,它将起作用:
A a{};