C++相談室 part46
■ このスレッドは過去ログ倉庫に格納されています
0457デフォルトの名無しさん
2006/01/29(日) 02:11:46前々からどうすべきなのか悩んでいることがあるので
皆さんならどうするのか質問させてください。
class A でコンストラクタで設定するパラメータとして、
多くの場合にはデフォルト値を使用するため、次のようにします。
class A
{
public:
static const int default_a;
A(int a = default_a) : a_(a) {}
private:
int a_;
};
他のクラスBやCでも同じようにします。
すると、このdefault_aとかdefault_bとかはほとんど変更しないため、
結果的にあちこちのクラスに定数が散らばってしまうことになります。
これの何が問題なのかというと、
結局クラスを利用する側ではほとんどデフォルト値だけを使用して、
たまにプログラム全体の挙動を変更させたい場合にだけ、
default_aとかの値自体を変更してコンパイルし直して
テストしたりするわけです。
その場合に、あちこちのファイルに回って、
default_hogeを変更するのが面倒だなあ、と。
■ このスレッドは過去ログ倉庫に格納されています