gpt4 book ai didi

c++ - 在类类内不必要使用枚举类

转载 作者:行者123 更新时间:2023-12-02 10:08:40 26 4
gpt4 key购买 nike

我首先要说我对OOP还是很陌生。我正在尝试编写一个可移植的类,该类可能会在多个程序中使用。该类需要多个枚举列表来存储仅与该类相关的信息,因此我计划将枚举嵌套在该类中。我的问题是

  • 是否有任何理由在类内使用enum class?还是应该只使用enum?只是好奇。我在下面发布了示例代码以供引用。
  • 是否有任何理由为什么要在类里面公开枚举是一个非常糟糕的主意?

  • #include <iostream>

    enum class Color {
    red = 0,
    green = 1,
    blue = 2
    };

    class CodeLibray {
    public:
    enum Color2 {
    red = 0,
    green = 1,
    blue = 2
    };
    enum class Color3 {
    red = 0,
    green = 1,
    blue = 2
    };
    Color color;
    Color2 color2;
    Color3 color3;
    };

    int main(){
    CodeLibray c;
    c.color = Color::red;
    c.color2 = CodeLibray::Color2::blue;
    c.color3 = CodeLibray::Color3::blue;
    }

    最佳答案

    • Is there any reason to use an enum class inside a class, or should I just use enum? Just curious. I posted sample code for reference below.


    很明显,如果您在其中忽略 enum,则在 CodeLibray中定义的 enum class值将变得模棱两可。

    • Also, If I want enums to be accessible for assigning public member values but I do not want values in the enum to be changed is this possible?


    我不完全明白你的意思。只是在黑暗中拍摄,类似以下内容?
    enum Color2 {
    red = ::red,
    // ^^ Refer to the enum declaration in the global namespace
    green = ::green,
    blue = ::blue
    };
    enum class Color3 {
    red = ::red,
    green = ::green,
    blue = ::blue
    };

    关于c++ - 在类类内不必要使用枚举类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43954388/

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