▲>>1111420
Угу. Внезапно, правда?
В данном случае это семантически одно и то же, но синтаксически - это разные вещи. Еще у конструктора может быть больше одного параметра, тогда "=" не отделаешься.
Немного понятней будет, если базовый тип заменить на собственную структуру:
struct A {
A() { cout << "A()" << endl; }
A(int a) { cout << "A(" << a << ")" << endl; }
};
A a(4);
A b(int);
A c();
A d;
Главный вопрос здесь - зачем понадобилось перегружать и без того сложную синтаксическую структуру?