gpt4 book ai didi

c++ - 枚举类的值超出范围

转载 作者:行者123 更新时间:2023-11-30 03:30:00 27 4
gpt4 key购买 nike

当我在一个函数中定义一个 enum class 时,它有一个来自可用选项的值。但是,当我在一个类中定义它时,它没有任何选项的值。那么g.f的初始值是多少呢?什么会返回 true 比较时? ((g.f==??)==true) ?

#include <iostream>

enum class Fruit
{
apple,
orange
};

class Garden
{
public:
Fruit f;
};

void print_enum(Fruit f)
{
switch(f)
{
case Fruit::apple:
std::cout<<"apple\n";
break;
case Fruit::orange:
std::cout<<"orange\n";
break;
default:
std::cout<<"other\n";
break;
}
}

int main()
{
Garden g;
Fruit f;

print_enum(f); // apple
print_enum(g.f); // other

return 0;
}

最佳答案

始终初始化您的变量,C++ 在某些情况下不会使用“默认”值初始化它们。

在这两种情况下,您都在此处编写了您的编译器和操作系统,但您可能最终会在 enum 变量中得到 garbage(这是您在后一种情况下进行的实验)。如果你想看看那个 garbage 是什么,执行这个:

std::cout << (int)g.f << std::endl;

关于c++ - 枚举类的值超出范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45251401/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com