C++相談室 part92
■ このスレッドは過去ログ倉庫に格納されています
0257デフォルトの名無しさん
2011/11/16(水) 11:39:44.29class Hoge {
static bool initialized;
static CommonData commonData;
static void Load(void) {
if(initialized) return;
file f("Hoge.dat"); // 〜
if(succeeded) initialized = true;
else throw except("init error");
}
public:
Hoge(void) { Load(); }
};
class Fuga {
static bool initialized;
static CommonData cd;
public:
static bool Load(file & f) {
// 〜
if(succeeded) initialized;
return succeeded;
}
};
Fuga(void) { if(!initialized) throw except("not ready"); } };
Hogeの方は初期化の面倒さや初期化忘れもありませんが、ファイル名が競合するかもしれないという不安があります
面倒な部分がカプセル化されててOOPっぽい雰囲気もあります
Fugaの方は初期化忘れや初期化順の混乱とかがおこるかもしれませんが、ファイル名はアプリケーションで指定できるので競合しません
どっちがいいんでしょうか
■ このスレッドは過去ログ倉庫に格納されています