【问题标题】:Regarding enums and classes in c++ and how they work关于 C++ 中的枚举和类以及它们是如何工作的
【发布时间】:2012-04-15 00:51:34
【问题描述】:

我对枚举如何与类一起工作感到困惑..

这是我的测试代码...是的,我知道它不起作用... http://ideone.com/oy3VH

基本上我有测试功能工作......测试2和3是相同的功能,我只是为了示例目的。

我的困惑在于“testing3”。我想做的是通过调用具有人类可读值的对象来访问 switch 语句。比如 PlayAgain 或 Instructions。

现在你可以在第 79 行看到,这有效.. 但只有在 main 中声明枚举(或我称之为对象的 w/e 范围......

我想要做的是没有第二个声明使用枚举名称.. 如第 82 行?

这可能吗..如果可以的话怎么办?

谢谢

【问题讨论】:

    标签: c++ class enums


    【解决方案1】:

    在类本身之外使用枚举时,您需要确定枚举的范围。

    例如:

    Func( cEnumtest::PlayAgain );
    

    其他一些提示:

    您的枚举本质上是整数常量。为了代码的可读性和清晰性,我建议您有一个命名约定,将它们与其他代码严格区分开来。

    例如:('k' 代表常量;'c' 通常用于指示类数据类型,这就是为什么 'k' :)

    enum eGameActions
    {
        kActionPlay,
        kActionQuit,
        kActionSaveGame
    };
    

    【讨论】:

    • no.. 类定义范围,而不是实例。例如: enumTEST::Instructions
    • KenK,对不起,我不知道你的意思是什么? TESTIT.testing3(enumTEST::Instructions); // 不工作!! “说明”:无法访问在类“enumTEST”中声明的私有枚举器
    • 你有一个名为 enumTEST 的类。你有一个名为 TESTIT 的类的实例;您通过引用其拥有的范围来访问枚举。即声明它的类(或命名空间)。是的..我忘记注意到您将它们定义为私有的事实。 (谢谢 eelerjr12 )
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-25
    • 2023-03-24
    • 1970-01-01
    • 2011-01-06
    • 2010-10-01
    • 2018-01-24
    相关资源
    最近更新 更多