【问题标题】:How to pass enum name to switch directly, vc++ mfc如何通过枚举名直接切换,vc++ mfc
【发布时间】:2015-06-24 12:55:24
【问题描述】:

我正在寻找知道如何将枚举名称直接传递给 switch case。 例如:

enum Flower { rose, jasmine };

switch (Flower)
{
case rose : //Code for rose
case jasmine: //Code for jasmine
}

有人请帮助我如何做到这一点?我从 C 中找到了这些代码部分。但我需要 C++ 中的相同代码部分。在 C++ 中可以吗?请帮我。谢谢大家

【问题讨论】:

  • switch 语句采用表达式,而不是类型。
  • 另外,您可能想要使用 C++11 enum class 而不是常规的 C 枚举
  • 你的意思是switch (rose)?如果你有enum class Flower,那么switch (Flower::rose)

标签: c visual-c++ enums switch-statement


【解决方案1】:

你可能想要这个:

Flower f = rose;
...
switch (f)
{
  case rose : //Code for rose
  case jasmine: //Code for jasmine
}

【讨论】:

    【解决方案2】:

    在 C 和 C++ Programmer 中,switch(Expression),表达式的结果必须是整数值。枚举花{玫瑰,茉莉花}; Flower 只是一个类型,而不是一个值, 像 int rose = 0,int jasmine=1,你不能在 switch 表达式中使用它。 你可以定义像 enum Flower fname;

    switch(fname)
    {
       case rose:
        ...
       break;
       case jasmine:
        ...
       break;
       default:
       break;
    }
    

    【讨论】:

    • 非常感谢..这正是我要找的。让我的程序正确:-)
    猜你喜欢
    • 2014-11-10
    • 2011-05-17
    • 2020-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-28
    相关资源
    最近更新 更多