我有三个类,所有这些类都来自不同的命名空间,如下所示:
classA.h
namespace outer
{
namespace inner
{
class ClassA
{
....
};
}
}
classB.h
namespace inner
{
class ClassB
{
...
};
}
classC.h
#include <classB.h>
namespace outer
{
namespace inner2
{
using inner::ClassB; // error here, says outer::inner2::ClassB has not been declared.
class ClassC
{
....
};
}
}
我被困在这,请帮我解决这个问题。
答案 0 :(得分:9)
你需要
using ::inner::ClassB;
因为在namespace outer
中,inner
::inner
- 全局命名空间::outer::inner
- outer
名称空间默认情况下,using inner::ClassB;
会尝试从ClassB
导入outer::inner
。