Почему явный конструктор со всеми аргументами по умолчанию не может быть вызван из другого конструктора того же класса?
#include <iostream>
#include <string>
class A {
public:
explicit A(int a = 1, int b = 2) :
a_(a),
b_(b) {}
A(std::string s)
: A() {
std::cout << s;
}
int a_;
int b_;
};
int main() {
A a("!");
std::cout << a.a_;
}
g++ -v
gcc версии 4.8.2 (Ubuntu 4.8.2-19ubuntu1)
g ++ -o out -std = c ++ 11 main.cpp
Ошибка: main.cpp: 12: 13: ошибка: нет соответствующей функции для вызова ‘A :: A ()’