C++相談室 part17
■ このスレッドは過去ログ倉庫に格納されています
0434デフォルトの名無しさん
NGNGご意見が伺えればと思います。
たとえば、
class Hoge {
public:
hoge_t value() const {
// 初期化してないときは、ファイルから読み込んだりして
// メンバを初期化したい。
// でも、いつ使うか分からないのでコンストラクタでは
// 初期化したくない。
// でも、意味的には絶対にconst なのに。。。
}
};
みたいな、メンバを作りたくなったことってないですか?
そんな場合ってどうしてます?
1. しょうがないので、constをはずす。
2. Hoge* h = (Hoge*)this;
3. グローバルな領域に、いつも触れるオブジェクトをおいておいて、
それを参照する。
4. その他
くらいですかね?
1. は、そのためにconstを使わないというのが、のちのち別の弊害を
呼びそうで嫌です。
2.や3.は、このクラスのconstが信用できなくなりそうで嫌です。
結局、オーバヘッドが気になるけど、コンストラクタで初期化して
しまったのですが、なにか良い解決方法ってありますか?
よろしくです。
■ このスレッドは過去ログ倉庫に格納されています