0

Why there is no output? Why doesn’t an ambiguity error occur?

#include <iostream>
using namespace std;
class A{
public:
    A(){
        cout << "Class A";
    }
    A(int a = 0){
        cout << "A";
    }
};

int main() {
    A a();
    return 0;
}

So when we create an object “a” of type “A” A a();, compiler calls a constructor without parameters, doesn’t he?

In C++, We can have more than one constructor in a class with same name, as long as each has a different list of arguments. A constructor is called depending upon the number and type of arguments passed. While creating the object, arguments must be passed to let compiler know, which constructor needs to be called.

0 Answers0