【发布时间】:2021-06-11 11:05:00
【问题描述】:
我想创建一种新类型的变量,它有自己的常量值。所以我想做这样的事情:(这是一个解释这个想法的无效示例)
class Variabletype {
public:
static const uint8_t Option1 = 0;
static const uint8_t Option2 = 1;
};
typedef const uint8_t Variabletype;
int main() {
Variabletype vt = Variabletype::Option1;
if (vt == Variabletype::Option1)
printf("Option 1\n");
else
printf("Option 2\n");
return 0;
}
在将其声明为类后,我无法键入名称Variabletype,但我希望它清楚,我的意图是什么?这个想法的好处是直接找到变量vt 的可能值。我也不想用常量向我的全局空间发送垃圾邮件,而且我不能将vt 设置为不可能的值。
那么这样的事情可能吗?我已经搜索了很多,但没有找到任何解决方案。
【问题讨论】:
-
您似乎想要一个
enum变量或enum class。 -
@AdrianMole 非常感谢,这就是我要找的!所以我有这样的东西: enum class Variabletype {Option1, Option2};
-
我认为这个问题已经有一个规范的副本。我看了但没有找到,所以我发布了一个答案。