Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > внутренний класс


Автор: gpepsi 9.8.2010, 11:30
Если так
Код

class A {
private :
   void fn (void) {}

public:

   struct B
   {
      B (A* a)
      {
          a->fn();
      }
   }
}


То доступ получаю к приватным методам;

А можно ли B определить в другом cpp
типа
Код

class A {
private :
   void fn (void) {}

public:

   struct B;
}


просто тогда доступ не могу получить.

Автор: djamshud 9.8.2010, 11:39
Код

class A{
protected:
int a;
public:
struct B;
};

struct A::B{
B(A *a){a->a=5;}
};

int main(){
A a;
A::B b(&a);
return 0;}

Автор: Annihilator 9.8.2010, 19:33
Тебе нужно доступ к приватным методам во втором случае?
Код

class A {
private :
   void fn (void) {}
public:
   friend struct B;
};

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)