tengo una clase que se parece a:C++: ¿Inicializar un puntero de miembro a nulo?
class Foo
{
public:
Foo();
virtual ~Foo();
private:
Odp* bar;
};
Deseo inicializar bar
a NULL
. ¿Es esta la mejor manera de hacerlo?
Foo::Foo() : bar(NULL)
{
}
Además, ¿es necesario que el destructor sea virtual? (Si esto es cierto, entonces debe ser el constructor virtual, así?)
Posiblemente mejor es solo 'Foo :: Foo(): bar() {}' (Nota, no 'NULL'.) Lo mejor es no tener el puntero, sin embargo. – GManNickG
¿Por qué es eso mejor? ¿Está el 'NULL' implícito? –
"¿Por qué es eso mejor?" No necesita incluir un archivo de encabezado para la definición de 'NULL' (que de todos modos es' 0'). "¿Está implícito el' NULL'? " Sí. 'bar()' es una inicialización de valor; en el caso de un puntero, lo inicializa a nulo. –