L'utilizzo degli elenchi di inizializzatori è generalmente consigliato. Ora diciamo che ho il seguente codice (esempio banale solo per fare la domanda più chiaro):È possibile eseguire il controllo di integrità nell'elenco di inizializzazione di un costruttore?
class foo
{
public:
foo(ptr1* a, ptr2* b) : m_a(a), m_b(b), m_val(a->val) {}
/* code and members here */
};
vorrei controllare che a
non è NULL prima che si tenta di risolvere il riferimento esso per ottenere val
. C'è un modo per eseguire un controllo di sanità mentale?
Questo è un buon compromesso. Posso quindi inserire gli asserzioni nel corpo del costruttore e in effetti si attivano correttamente. (+1) – Samaursa