【问题标题】:Can enums be initialized in an member initialization list?枚举可以在成员初始化列表中初始化吗?
【发布时间】:2019-04-25 18:23:30
【问题描述】:

我知道我可以使用成员初始化列表在构造函数中初始化 int 变量,但是我可以像下面的示例那样在成员初始化列表中初始化 enum 类型吗?

enum number{zero, one, two, three};

class Example{
    int test;
    number number_enum;
public:
    Example(int test_arg, number number_enum_arg): test(test_arg), 
number_enum(number_enum_arg){

    }  

};

另外,我知道最好使用成员初始化列表来初始化变量,而不是使用赋值运算符,但究竟是这样吗?

【问题讨论】:

  • 您在尝试此操作时是否遇到错误?
  • 对于您的后续问题,请参阅:stackoverflow.com/questions/926752/…
  • 当你尝试这段代码时发生了什么?
  • 您会为每种类型创建一个单独的问题吗?像我可以初始化int一样,我可以初始化short吗?那我能不能初始化double之类的。你真的认为成员初始化只为int类型定义吗?
  • @NathanOliver 我没有收到错误,但是当我在程序中尝试这个时,我不确定它是否通过了值

标签: c++ class oop enums constructor


【解决方案1】:

您的示例中的代码将起作用,您可以在初始化列表中初始化枚举和几乎所有类型。在构造函数中添加一行以将其打印出来,您会看到。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-23
    • 1970-01-01
    • 2011-07-14
    • 1970-01-01
    • 2019-09-10
    相关资源
    最近更新 更多