在我的项目中,有一个基类和三个不同的派生类。我在基类中有一些写为 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:这个问题可能是重复的,但是我找不到类似的词,如果你觉得是这样,请随时重定向到相应的文章/问题;
最佳答案
如果我没理解错的话,enum 会满足您的需求吗?
class Base
{
enum
{
ZERO,
ONE
};
};
关于c++ - 如何避免 C++ 派生类中基类成员的重复拷贝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10055391/