イニシャライザリストを使用することが一般的に推奨されています。今度は、私は、次のコード(ちょうど質問をより明確にするために簡単な例を)持っているとしましょう:コンストラクタの初期化子リストでサニティチェックを実行できますか?
class foo
{
public:
foo(ptr1* a, ptr2* b) : m_a(a), m_b(b), m_val(a->val) {}
/* code and members here */
};
私はそれがval
を得るためにそれを参照解除しようとする前に、a
がNULLでないことを確認したいと思います。そこにサニティチェックを行う方法はありますか?
それは十分な妥協点です。コンストラクタ本体にアサートを置くことができ、実際には適切に起動します。 (+1) – Samaursa