在其他类中使用头中的枚举
Use enum from header in other class
我的枚举有点问题。
我想创建一个以枚举为参数的新对象。
A.h:
#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不是类或命名空间"
怎么了?很抱歉问这个问题,但我是新手。
您可以作为访问enum
A::value1
或者你可以使用类似的enum class
enum class myEnum { value1, value2}
然后你会把这个值作为
A::myEnum::value1
value
的完全限定名称为:
A::myEnum::value1
但是,C++(在C++11之前)不允许使用enum
的名称(取决于编译器,它们可能会发出警告)。因此,在C++11之前,您需要:
A::value1
但是,枚举(myEnum
)是不可访问的,因此必须将其标记为public
。
在C++11以后的版本中,您最好使用enum class
,它必须是完全限定访问的。
class A {
public:
enum myEnum { value1, value2};
};
如上所述添加公共访问说明符。像一样使用它
A::myEnum::value1
尽管以下内容将适用
A::value1
相关文章:
- 不带大括号的枚举形式
- 泛型枚举和其他类型的重载模板函数
- 如何使枚举被其他类识别
- const枚举或其他
- C++ 在方程中使用变量;错误:表达式必须具有整数或无作用域枚举类型及其他
- 其他类中的枚举类的二传手和获取器
- 如何根据枚举参数返回其他类型
- 无法使用其他文件中的枚举:" does not name a type"错误
- 使用对其他枚举值的操作定义枚举元素值
- 设计问题:枚举或函数或其他什么
- 使用其他库中的值枚举
- 将结构的枚举传递给其他功能并分配值
- 如何使C枚举类型可用于其他语言
- 在编译时获取枚举类大小,而无需定义其他元素
- 如何访问其他类的成员枚举 (c++)
- 在其他类中使用头中的枚举
- 可以根据同一枚举类型中的其他枚举器来定义枚举器吗
- 访问其他类的枚举值
- 使枚举值与许多其他枚举值相等
- 由其他枚举数生成的枚举数值