2013-09-20 16 views
3

Конструкторы:Конструктор параметр по умолчанию

A() 
{ 
    std::cout<<"In A const"; 
} 

A(int a = 3) 
{ 
    std::cout<<"In a with default :"<<a; 
} 

Создание объектов:

A a; 
A a1(4); 

Приведенный выше код показывает ошибки: вызов перегруженной 'A()' неоднозначен

+4

компилятор не может решить, какой конструктор вызывается, если не передается параметр. – Jost

ответ

10

Вы указали значение по умолчанию для второго construc тор:

A(int a = 3) 

Так что это охватывает оба экземпляра: A() и A(3), что делает первое определение избыточную

Смежные вопросы