Есть ли разница между пользовательским конструктором по умолчанию?
class Simple
{
public:
Simple() {}
};
и определяемый пользователем конструктор, который принимает несколько аргументов, но имеет значения по умолчанию для каждого из них.
class WithDefaults
{
public:
WithDefaults(int i = 1) {}
};
кроме этого WithDefaults
также можно создать с явным значением для i
?
В частности, что касается языка, мне интересно, воспроизводят ли эти два конструктора один и тот же набор конструкторов по умолчанию для обоих, или есть тонкие различия между свойствами классов?
Другими словами, является ли конструктор, который имеет значения по умолчанию для всех своих аргументов, конструктором по умолчанию во всех отношениях?
explicit
, но с этим нужно быть осторожным. - person MicroVirus   schedule 08.11.2015