使用关键字与类不允许?

时间:2014-07-29 07:35:01

标签: c++ using friend

您好我正在尝试使用using关键字在另一个类中嵌套。 这可能与课程有关吗?我知道auto会这样做,它可以用于命名空间和基类和函数。

我对课程的假设不正确吗?

我收到以下错误

 error: ‘CTest’ is not a namespace

源代码

class CB {
  public: 
   void foo();
};

class CTest  { 
  public:   
    void foo();
  private:
    class CA {
      public:
        void foo() ;
    };        
  private:
    class CB b_;

    friend class CTest::CA;
    friend class CB;
};

void CTest::foo() { b_.foo();}
void CTest::CA::foo() { std::cout << "ciao" << std::endl;}
void CB::foo() { using CTest::CA; CA a; a.foo();}   

int main() {
  CTest obj;
  obj.foo();
}

1 个答案:

答案 0 :(得分:4)

C ++ 11:

void CB::foo() { using CA = CTest::CA; CA a; a.foo();}   

C ++ 98:

void CB::foo() { typedef CTest::CA CA; CA a; a.foo();}