Доступ к приватным членам из потомка дружественного класса
От: Gwynn Россия  
Дата: 24.01.06 11:05
Оценка:
Привет всем!

Возник вопрос. Есть у нас к примеру некоторый абстрактный класс 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;
        }
};


Заранее спасибо за ответы.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.