【初心者歓迎】C/C++室 Ver.9【環境依存OK】
■ このスレッドは過去ログ倉庫に格納されています
0560デフォルトの名無しさん
NGNG例外を投げるべきか、それとも取りあえず黙って受け入れて
bool Foo::valid() const { return handle_ != 0; }
のような関数で各自チェックしてくださいね〜とするのとどちらがよいのでしょう?
後者の場合、強制はできないので
int Foo::do_something() {
if (!handle_)
return -1; //とか、例外を投げるとか
//何かする。
}
のように他の関数でもいちいちチェックしなければなりませんよね?
それとも、コンストラクタを全部private or protectedにして
Foo *Foo::create() {
//いろいろチェック。ダメならすぐ0返す
return new Foo(/* 全部OKなparameters */);
}
Foo *f = Foo::create(/* parameters */); //失敗したら0がかえってくる
f->do_something();
のようにするのとどっちが良いのでしょう?
■ このスレッドは過去ログ倉庫に格納されています