Привет всем!
Возник вопрос. Есть у нас к примеру некоторый абстрактный класс CBase. Он является дружественным классу CBase2. Мы создаем наследника CBase, конкретный класс CExt и реализуем в нем все абстрактные методы CBase. Однако CExt по нормам языка уже не является дружественным классу CBase2, хотя есть необходимость получить из реализации абстрактных методов CBase доступ к CBase2. Можно ли обойти такую проблему и как? Другими словами нужно сделать примерно следующее:
class CBase2
{
friend class CBase
public:
CBase2()
{
}
~CBase2()
{
}
private:
float f;
};
class CBase
{
public:
CBase()
{
}
~CBase()
{
}
virtual void DoSome(CBase2*) = 0;
};
class CExt : public CBase
{
public:
CExt()
{
}
~CExt()
{
}
virtual void DoSome(CBase2* obj)
{
obj->f = 1.1f;
}
};
Заранее спасибо за ответы.