cuốn sách gpt4 ai đã làm

c++ - 将静态常量类实例用于开关/案例

In lại Tác giả: Walker 123 更新时间:2023-11-28 02:38:43 28 4
mua khóa gpt4 Nike

我有一个有点像枚举的类,它的每个实例都有一个唯一的 int 值,该值从 0 开始并在每个新实例时递增。

class MyEnumLikeClass
{
static int NextId = 0;

static const MyEnumLikeClass FIRST;
static const MyEnumLikeClass SECOND;

const int val_;

công cộng:
MyEnumLikeClass() : val_(NextId++)
{
}

operator int() const
{
return val_;
}

//other methods (usually getters) omitted for clarity
}

我正在尝试在 switch case 中使用它,这样我就可以做类似的事情

MyEnumLikeClass value;
switch(value)
{
case MyEnumLikeClass::FIRST :
phá vỡ;
case MyEnumLikeClass::SECOND :
phá vỡ;
mặc định :
}

我收到“case value is not a constant expression”错误,这似乎是因为编译器在编译时不知道这些值。

有什么方法可以让它发挥作用吗?

câu trả lời hay nhất

在 C++11 之前,case 语句的参数必须是整型常量表达式。最简单的方法是使用 const int 或实际的 liệt kê。如果您使用的是 C++11,那么您可以简单地使用内置的 enum class 支持。查看scoped enumerations .

关于c++ - 将静态常量类实例用于开关/案例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26678432/

28 4 0
Walker 123
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress