Как написать реальный код из вложенного класса вне основного класса - PullRequest
5 голосов
/ 04 ноября 2011

Я хотел бы сохранить читабельность кода, написав реальный код вложенного класса вне основного класса. Возможно ли это и как?

class AA{
   //random code

   class BB : public CC <double> {
      // very long code
   };

   // random code
};

Я хотел бы написать что-то вроде:

class AA{
  //random code
  //<declaration of class BB>
  // random code
};

class BB : public CC <double>{
  // very long code
};

и класс BB должен быть доступен только внутри класса AA ...

Ответы [ 2 ]

11 голосов
/ 04 ноября 2011
class A {
    class B;
};

class A::B {
    // ...
};
2 голосов
/ 04 ноября 2011

Это то, что вы хотите?

#include <iostream>
using namespace std ;
class AA{
   class BB{
      friend class AA ;
      void VeryLongFunction() ;
   };
public:
    void f(){
      BB bb ;
      bb.VeryLongFunction() ;
    }
};

void AA::BB::VeryLongFunction(){
  cout << "I am a very long function" << endl ;
}

int main(){
  AA aa ;
  aa.f() ;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...