私のプロジェクトには、1 つの基本クラスと 3 つの異なる派生クラスがあります。基本クラスに const int として記述されたマクロ変数がいくつかあります。すべての派生メンバーはこれらのメンバーにアクセスし、同じ値を参照します。これは const であり、変更されることはないため、3 つの異なる値を維持することはスペースの無駄になります。したがって、すべての派生クラスが同じものを使用するように、基本クラスの const メンバーのコピーを 1 つだけ維持する方法が必要です。
例
//Base.hpp
Class Base {
const int ZER0;
const int ONE;
};
//Derived1.hpp
class Derived1:public Base {
int some_method1();
};
//Derived1.cpp
int Derived1::some_method1() {
int value = ZERO;
}
//Derived2.hpp
class Derived2:public Base {
int some_method2();
};
//Derived2.cpp
int Derived2::some_method2() {
int value = ONE;
}
//main.cpp
Derived1 d1;
d1->some_method1();
Derived d2;
d2->some_method2();
//ここでは、両方のメソッドで値は一定ですが、それでも ZERO と ONE は異なるスペースを持つことになります。コピーを 1 つだけ維持する方法はありますか? 静的変数を考えることができました。クラス内で static を使用しても大丈夫ですか? static 変数をどこで初期化しますか? ご意見をお聞かせください。
PS: この質問は重複している可能性がありますが、似たような言葉が見つからない場合は、対応する記事/質問にリダイレクトしてください。