在其他类中使用标题中的枚举
Posted
技术标签:
【中文标题】在其他类中使用标题中的枚举【英文标题】:Use enum from header in other class 【发布时间】:2014-10-31 15:06:46 【问题描述】:我的枚举有点问题。
我想创建一个以枚举为参数的新对象。
啊哈:
#ifndef A_H_
#define A_H_
class A
enum myEnum value1, value2;
;
A.cpp
#include "A.h"
//code
function()
B* t = new B(myEnum::value1);
出现以下错误消息: “myEnum 不是类或命名空间”
怎么了?抱歉这个问题,但我是新手。
【问题讨论】:
应该是A::value1
【参考方案1】:
您将访问enum
A::value1
或者您可以使用enum class
之类的
enum class myEnum value1, value2
然后您将值范围设置为
A::myEnum::value1
【讨论】:
别忘了公开枚举声明! 正确,这是一个重要的细节。【参考方案2】:value
的完全限定名称是:
A::myEnum::value1
但是,C++(在 C++11 之前)不允许使用 enum
的名称(取决于编译器,它们可能会发出警告)。因此,在 C++11 之前,您需要:
A::value1
但是,枚举 (myEnum
) 不可访问,因此您必须将其标记为 public
。
从 C++11 开始,最好使用 enum class
,它必须是完全限定的。
【讨论】:
【参考方案3】:class A
public:
enum myEnum value1, value2;
;
如上所述添加公共访问说明符。 像这样使用它
A::myEnum::value1
尽管以下方法会起作用
A::value1
【讨论】:
以上是关于在其他类中使用标题中的枚举的主要内容,如果未能解决你的问题,请参考以下文章
IOS textFieldDidChange 在其他类中的出口时
其他类中的 UIApplicationDelegate 函数