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