В следующем коде:В C++, является конструктором с единственными аргументами по умолчанию конструктором по умолчанию?
struct Foo
{
Foo(int x=0);
};
подсчитывать ли конструктор, как конструктор по умолчанию?
В следующем коде:В C++, является конструктором с единственными аргументами по умолчанию конструктором по умолчанию?
struct Foo
{
Foo(int x=0);
};
подсчитывать ли конструктор, как конструктор по умолчанию?
C++ 98 §12.1/5 (курсив мой):
конструктор по умолчанию для класса X является конструктор из X, который может быть вызван без аргумента. Если для класса X нет конструктора, объявленного пользователем, конструктор по умолчанию объявляется неявно.
Так что да, он считается конструктором по умолчанию. See also.
Конструктор по умолчанию автоматически генерируется компилятором, когда вы его не определяете. Поэтому я бы сказал нет, это не потому, что вы определили его – peacemaker
@peacemaker, конструктор по умолчанию - это конструктор без аргументов – Matt
@peacemaker: вы вводите в заблуждение по умолчанию, как в «предоставленном по умолчанию», по умолчанию, как в « по умолчанию ". В стандарте используется термин для обозначения последнего. –