为什么没有输出? 为什么不出现歧义错误?
#include <iostream>
using namespace std;
class A{
public:
A(){
cout << "Class A";
}
A(int a = 0){
cout << "A";
}
};
int main() {
A a();
return 0;
}
因此,当我们创建一个类型为“A”A a();
的对象“a”时,编译器会调用不带参数的构造函数,不是吗?
在C ++中,只要每个具有不同的参数列表,我们就可以在具有相同名称的类中拥有多个构造函数。根据传递的参数的数量和类型调用构造函数。 在创建对象时,必须传递参数以让编译器知道,需要调用哪个构造函数。