Re[4]: множественное наследование
От: NikeByNike Россия  
Дата: 20.06.07 18:55
Оценка:
Здравствуйте, _Paul, Вы писали:

_P>>>Тебе поможет виртуальное наследование:


NBN>>Имхо здесь явно проблемы в архитектуре. К сожалению не готов предложить лучшую...


_P>Паттерн Bridge?


Не знаю я не вполне уверен, что правильно понимаю задачу. Возможно лучше было бы решить так:

// interface

class IPort
{
    virtual void PortFunc() = 0;
};

class IPortA : public IPort
{
    virtual void PortFuncA() = 0;
};

class IPortB : public IPort
{
    virtual void PortFuncB() = 0;
};

// implementation

template<class TInterface>
class Port
{
    void PortFunc() {}
};

template<class TInterface>
class PortA : public Port<TInterface>
{
    void PortFuncA() {}
};

template<class TInterface>
class PortB : public Port<TInterface>
{
    void PortFuncB() {}
};

IPortA* CreatePortA() { return new PortA<IPortA>; }
IPortB* CreatePortB() { return new PortB<IPortB>; }
Нужно разобрать угил.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.