クラス名・変数名に迷ったら書き込むスレ。Part22

このエントリーをはてなブックマークに追加
549デフォルトの名無しさん
オブジェクト(インスタンス)を宣言したばかりの状態「Object x;」
この状態は既に初期設定が済んでいる状態(OSのセットアップが済んだ状態)なのか、
それとも済んでいない状態なのか、どちらであるべきなんだろうか
特にC++でいえば、コンストラクタはそれが成功/失敗したかどうかを返せないので、
 Object * pNewValue(Object::TryCreate()); // Object * (static) Object::TryCreate() (nullable)
みたいに動的生成関数を用意するか、
 Object newValue;
 newValue.Try初期設定(); // bool Object::Try初期設定()
を用意するか

ここまで書いて「あ、これ命名に関係ないわ」と気付いた
550デフォルトの名無しさん:2013/01/09(水) 22:33:02.81
>>549
> 特にC++でいえば、コンストラクタはそれが成功/失敗したかどうかを返せないので、

例外があるだろ。そんなめんどい細工が要るのは特殊な状況(環境)だけ。
551デフォルトの名無しさん:2013/01/09(水) 22:46:08.16
例外は文字通り例外的な事が起こったことを知らせるためのものだから、
単に処理の成否を伝えるためだけに使わざるを得ないのは、
もしかしたら設計をミスっていることを示唆しているのかも知れん。
552デフォルトの名無しさん:2013/01/09(水) 22:48:55.34
>>551
おまいはよく分かっている
553デフォルトの名無しさん:2013/01/09(水) 22:51:25.13
とりあえずC++でエラーを例外として投げるのは一般的じゃないし、好まれていないし、あまり見ない
そもそもC++では例外自体が好まれていない。例外が投げられたら投げっぱなしが基本
554デフォルトの名無しさん:2013/01/09(水) 22:54:25.89
Javaみたいに例外はキャッチして処理すべきものとして作られている言語はともかく、C++でそれはない
boostのlexical_castみたいに文字列のパースに失敗したら例外を投げる、みたいな関数は「クソ面倒くせぇ」と感じる