0

我有三个类,它们都来自不同的命名空间,如下所示:

类A.h

namespace outer
{
    namespace inner
    {
        class ClassA
        {
           ....
        };
    }
}

B类.h

namespace inner
{
    class ClassB
    {
        ...
    };
}

类C.h

#include <classB.h>

namespace outer
{
    namespace inner2
    {
        using inner::ClassB; // error here, says outer::inner2::ClassB has not been declared.

        class ClassC
        {
            ....
        };
     }
}

我被困在这请帮我解决这个问题。

4

1 回答 1

9

你需要

using ::inner::ClassB;

因为在 中namespace outer,您有 2 个选项inner

  • ::inner- 全局命名空间
  • ::outer::inner-outer命名空间

默认情况下,using inner::ClassB;将尝试ClassBouter::inner.

于 2012-06-27T13:48:09.493 回答