在我的项目中,有一个基类和三个不同的派生类。我在基类中有一些宏变量写为 const int 。所有派生成员都将访问这些成员并且将看到相同的值。因为它是一个常量,并且不会改变,所以保持 3 个不同的值会浪费空间。因此,我想要一种方法来只维护基类 const 成员的一个副本,以便所有派生类都使用相同的。
例子
//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();
//在这两种方法中,值都是恒定的,但零和一仍然会有不同的空间。有没有办法,我只维护一个副本?我可以想到静态变量。在类中使用静态是否可以,我在哪里初始化静态变量。请指教。
PS:这个问题可能是重复的,但是我找不到类似的东西,如果你觉得是这样,请随时重定向到相应的文章/问题;