Ho appena letto un comment by GMan cheGli inizializzatori vuoti sono preferiti per l'inizializzazione predefinita di membri interi?
class A
{
public:
A() :
m_ptr() // m_ptr is implicitly initialized to NULL
{ }
};
dovrebbe essere preferito su
class A
{
public:
A() :
m_ptr(NULL) // m_ptr is explicitly initialized to NULL
{ }
};
Avviso la mancanza di NULL
nel primo esempio.
GMan è corretto? Questo potrebbe essere un po 'soggettivo, quindi "Preferisci inizializzatori vuoti per l'inizializzazione predefinita?" potrebbe essere più appropriato.
Anche se si preferiscono inizializzatori vuoti, fare questo si applica ad altri membri integrali?
class B
{
public:
B() :
m_count(),
m_elapsed_secs()
{}
private:
std::size_t m_count;
float m_elapsed_secs; //the elapsed time since instantiation
};
Naturalmente, si prega di difendere il tuo punto di vista con una descrizione del motivo per cui uno dovrebbe essere preferito rispetto all'altro.
Qualcuno più creativo di me ha un titolo migliore, quindi smetto di ricevere risposte sbagliate? Chi avrebbe pensato che * potessi * ottenere risposte sbagliate a una domanda sulle migliori pratiche. –
Penso che il titolo sia chiaro e la domanda ben scritta. Poi di nuovo, so già cosa stai chiedendo. Le risposte sbagliate erano probabilmente solo equivoci della lingua, non la tua domanda. – GManNickG