現在、オブジェクトを返すメソッドがあります(学校など)。ただし、そのメソッドでは、int である NULL を返す場合があります。そのようなメソッドの戻り値の型はどうあるべきですか.2つのいずれかを安全に返すことができます. 助言がありますか ?私は他のアプローチにもオープンです。
4 に答える
9
返したい型に自然な「null」値がないboost::optional
場合は、探しているようです。
ただし、返す値を生成できないことがエラー状態であるかどうかを検討してください。そうである場合は、boost::optional
(または null 値) を返すのではなく、関数が常に目的の型 (それが何であれ) を返し、戻り値を生成できない場合に例外をスローすることを検討してください。
于 2013-06-03T18:23:38.003 に答える
1
無効な学校であるクラス School の静的メンバーを検討してください-次のような...
class School {
public:
static const School invalid;
...
};
null を返す代わりに、無効な学校への参照を返し、null と比較する代わりに、School::invalid と比較できます。
必要に応じて、この無効な学校は、null ポインターを参照する危険を冒さずに、予測可能な処理 (スローやエラーなど) を行うメソッドを持つ School のサブクラスにすることができます。
null は、他の名前のない定数と同様に、その値のソースまたは意図についてあいまいです。たとえば、0x00FFFFFF は Color::White よりも情報が少ないです。
于 2013-06-03T18:51:47.827 に答える