Предположим, что у меня есть классконструктор с одним параметром по умолчанию
class C {
C(int a=10);
};
почему, если я называю
C c;
застройщик C(int =10)
называется и если я называю
C c();
конструктор по умолчанию называется? Как этого избежать? Я хочу выполнить только мой конструктор, я попытался сделать конструктор по умолчанию закрытым, но он не работает.
Как насчет того, чтобы предоставить нам компилируемый фрагмент кода, который показывает нам поведение, которое, по вашему мнению, вы видите? Как вы можете видеть из ответов до сих пор, то, что вы описываете, не то, что должен делать код. – sbi
Как и FYI, MSVC (начиная с по крайней мере VS2003) предоставит предупреждение об этой проблеме: 'warning C4930: 'C c (void)': прототипированная функция не была вызвана (было ли определение переменной предназначено?)' Я знаю другие компиляторы также, но те, которые я легко имею в настоящее время, нет. –