【发布时间】:2012-12-12 14:36:43
【问题描述】:
我想知道是否可以转发声明在另一个类范围内定义的枚举。例如,考虑以下情况:
//A.h
class A
{
public:
enum class type: unsigned long { /*some stuff*/ }
};
现在,在另一个头文件中,我想转发声明“类型”枚举(假设下面的 B 类有一个函数可以处理 A::type)
//B.h
enum A::type; //use of undefined type 'A'
class B
{
public:
UseTypeEnum(A::Type&);
};
这也不起作用:
//B.h
class A;
enum A::type; //still use of undefined type
class B...
如果在A.h.中在全局范围内声明枚举是没有问题的
有什么办法吗?
【问题讨论】:
-
枚举应该被声明为静态成员,你确定你不能写程序而忽略枚举前向声明吗?