shofee
shofee

Reputation: 2129

C++ namespace issue

I am having three classes all of them are from different namespaces as shown below:

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
        {
            ....
        };
     }
}

I am stuck at this please help me to solve this issue.

Upvotes: 0

Views: 167

Answers (1)

Luchian Grigore
Luchian Grigore

Reputation: 258548

You need

using ::inner::ClassB;

because in namespace outer, you have 2 options for inner

  • ::inner - global namespace
  • ::outer::inner - outer namespace

By default, using inner::ClassB; will try to import ClassB from outer::inner.

Upvotes: 9

Related Questions