我正在为使用 Sloeber(Eclipse 的 Arduino 插件)的 AVR 项目重构一些 C++ 代码。该项目有许多“设置”变量存储在 EEPROM 中,有上限和下限,需要字符串标签等。这些设置是不同的整数类型(uint8_t
,int32_t
等),我想要一个可以包含任何一个的包装器在这些类型中,一些方法继承自基类。我还希望能够形成所有设置变量的单个数组,以便我可以遍历它们。
一个简单的实现演示如下:
// Base class storing a uint8_t by default
class Base {
public:
typedef uint8_t numType;
numType value = 0;
};
// Child class changing 'numType' to a uint16_t
class Child: public Base {
public:
typedef uint16_t numType;
};
然后运行以下命令:
Base baseObj;
baseObj.value = 123;
Child childObj;
childObj.value = 12345;
我的意图是这childObj.value
将是一个uint16_t
,而baseObj.value
将仍然是一个uint8_t
。
但是childObj.value
计算结果为57
,因此它仍被视为uint8_t
。关于实现这种事情的方法有什么想法吗?