acabo de leer un comment by GMan que¿Se prefieren los inicializadores vacíos para la inicialización predeterminada de miembros integrales?
class A
{
public:
A() :
m_ptr() // m_ptr is implicitly initialized to NULL
{ }
};
conviene preferir el
class A
{
public:
A() :
m_ptr(NULL) // m_ptr is explicitly initialized to NULL
{ }
};
Aviso la falta de NULL
en el primer ejemplo.
¿Es GMan cierto? Esto podría ser un poco subjetivo, entonces "¿Prefiere los inicializadores vacíos para la inicialización predeterminada?" podría ser más apropiado.
Además, si prefiere los inicializadores vacíos, ¿esto se aplica a otros miembros integrales?
class B
{
public:
B() :
m_count(),
m_elapsed_secs()
{}
private:
std::size_t m_count;
float m_elapsed_secs; //the elapsed time since instantiation
};
Por supuesto, defienda su punto de vista con una descripción de por qué uno debe preferirse sobre el otro.
¿Puede alguien más creativo que yo obtener un título mejor así que dejo de obtener respuestas incorrectas? ¿Quién hubiera pensado que * podría * obtener respuestas incorrectas a una pregunta sobre mejores prácticas? –
Creo que el título es claro, y la pregunta está bien escrita. Por otra parte, ya sé por qué preguntas. Las respuestas incorrectas probablemente fueron simples malentendidos del idioma, no tu pregunta. – GManNickG