全世界可能只有我自己会犯这样的错误
class A{
public:
A(){cout << "不带参数的构造函数" << endl;}
A(int i){ cout << "带参数的构造函数" << endl;}
}
int main(){
A a;//A a{}跟这样的写法等价//使用不带参数的构造函数
A b(1);//A b{1}跟这样的写法等价//使用带参数的构造函数
//A a();这是一个错误的写法,我曾以为,这样才是调用不带参数的构造函数
//其实编译器把 a() 这种写法当做成了一个函数
return 0;
}
没有参数就不加小括号(或者只加大括号),有参数才加括号。
对于这里“{}”大括号的用法,请参考:https://blog.csdn.net/shaochuang1/article/details/99884692