Nel codice seguente:In C++, è un costruttore con solo argomenti predefiniti un costruttore predefinito?
struct Foo
{
Foo(int x=0);
};
Fa il costruttore conta come un costruttore di default?
Nel codice seguente:In C++, è un costruttore con solo argomenti predefiniti un costruttore predefinito?
struct Foo
{
Foo(int x=0);
};
Fa il costruttore conta come un costruttore di default?
C++ 98 §12.1/5 (enfasi mia):
Un costruttore di default per una classe X è un costruttore di X che può essere chiamato senza argomenti. Se non esiste un costruttore dichiarato dall'utente per la classe X, un costruttore predefinito viene dichiarato implicitamente.
Quindi sì, conta come un costruttore predefinito. See also.
Il costruttore predefinito viene generato automaticamente dal compilatore quando non ne viene definito uno. Quindi direi di no, non è perché lo hai definito – peacemaker
@peacemaker in realtà, un costruttore predefinito è un costruttore senza argomenti – Matt
@peacemaker: Stai confondendo come predefinito in "fornito di default" con impostazione predefinita come in " chiamato di default ". Lo standard usa il termine per riferirsi a quest'ultimo. –