Доступ к защищенным членам friend'a из потомков
От: .A.Fas Украина  
Дата: 28.09.03 08:50
Оценка:
Hi All !

есть такой код:
class B
{
public:
  void method1()
  {
     F    f;
     f.m = 0;
  }
};

class D : public B
{
public:
  void method1()
  {
    F    f;
    f.m = 1;
  }
};

class F
{
  friend class B;
protected:
  int    m;
};


и получаю
error C2248: 'F::m' : cannot access private member declared in class 'F'
на строке f.m = 1;

class F
{
  friend class D; 
  ...
не катит (во время разработки B и F о D поидее ничего не извесно)

class F
{
  public: int m; 
...
крайне нежелательно

class F
{
  public: F::SetM(int)
  ...
не катит (лучше уже использовать 2)


Как еще можно это сделать ?
Может есть способ разрешить доступ производному классу декларативно ?

С уважением .Alex
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.