将调用哪个构造函数?

时间:2018-05-13 11:58:47

标签: c++ constructor

为什么没有输出? 为什么不出现歧义错误?

#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 ++中,只要每个具有不同的参数列表,我们就可以在具有相同名称的类中拥有多个构造函数。根据传递的参数的数量和类型调用构造函数。   在创建对象时,必须传递参数以让编译器知道,需要调用哪个构造函数。

0 个答案:

没有答案