En el siguiente código:En C++, ¿es un constructor con solo argumentos predeterminados un constructor predeterminado?
struct Foo
{
Foo(int x=0);
};
sí cuenta el constructor como un constructor por defecto?
En el siguiente código:En C++, ¿es un constructor con solo argumentos predeterminados un constructor predeterminado?
struct Foo
{
Foo(int x=0);
};
sí cuenta el constructor como un constructor por defecto?
C++ 98 §12.1/5 (énfasis mío):
un constructor predeterminado para una clase X es un constructor de X que se puede llamar sin un argumento. Si no hay un constructor declarado por el usuario para la clase X, se declara implícitamente un constructor predeterminado.
Así que sí, sí cuenta como un constructor predeterminado. See also.
El compilador genera automáticamente el constructor predeterminado cuando no define uno. Así que diría que no, no es porque lo haya definido – peacemaker
@peacemaker en realidad, un constructor predeterminado es un constructor sin argumentos – Matt
@peacemaker: está confundiendo el valor predeterminado como en "proporcionado por defecto" con el valor predeterminado como en " llamado por defecto ". El estándar usa el término para referirse a este último. –