Iは、データコンテナクラスから派生したクラスを有します。コンストラクタはコンテナのすべての内容を初期化できません。したがって、初期化を終了するために別のクラスメンバ関数を呼び出す必要があります(追加のデータを提供する)。このメンバー関数はブール値をtrueに設定し、データのアクセス準備が整ったことを示します。条件付きアクセス++
データは、クラスのメンバーだった場合、私は設定したい、それプライベート/保護されたと私は、次のようなアクセサを持っていると思います。私は、このクラスはから継承されないならばどのよう
mycontainer& get_data() { check_macro(ready, "Data not ready"); return data; }
mycontainer
?私はそれが私的にmycontainer
から派生して、this
への参照を返すことは、公開されることを期待することはできますか?
コンストラクタをリファクタリングして、オブジェクトが完全に初期化されるまで終了しないようにすることはできますか? – NathanOliver
まず何かが二あなたの最後の文はかなり無意味である、あなた以外のコンストラクタの初期化と魚です。何か助けが必要な場合は、あなたがしたよりも良い説明をしなければならないでしょう。 – snb
@NathanOliver:これは行うことができ、私の本例であり、そして私はそれがより良いスタイルであることに同意。しかし、オブジェクトが宣言されたときにオブジェクトを完全に初期化することは論理的でない場合があると思います。格納されたデータの一部は、宣言時に未知の非constメンバーによって計算されてもよい。 – Joce