enum标题中有一个:
namespace somespace
{
namespace internal
{
class SomeClass
{
public:
typedef enum
{
kNone = 0,
kKaka = 1,
}SomeEnum;
}
}
}
Run Code Online (Sandbox Code Playgroud)
在cpp中,我们有时会使用带有辅助函数的匿名命名空间.
#include <somespace/internal/SomeClass.h>
using somespace::internal;
namespace
{
bool helpMe(SomeEnum& foo) //does not recognize the enum in the header
{
}
}
void SomeClass::memberMethod
{
}
Run Code Online (Sandbox Code Playgroud)
但我无法访问SomeEnum中.cpp的文件.这是为什么?例如,如何在不污染internal命名空间的情况下解决这个问题?
SomeEnum的范围是它声明的类名.要使用它,你需要它SomeClass::SomeEnum.这假定SomeClass您可以在您拥有的范围内访问它.如果没有,那么你需要somespace::internal::SomeClass::SomeEnum
| 归档时间: |
|
| 查看次数: |
98 次 |
| 最近记录: |