Re: Интерфейсы и наследсвование.
От: sergey_shandar США http://getboost.codeplex.com/
Дата: 14.11.05 04:39
Оценка:
Здравствуйте, timai, Вы писали:

T>Компилятор ругается — якобы pure virtual function was not defined.

T>Не подскажете как это можно обойти?

Например так:
struct CObject: CBase, IObject
{
  void Rlease() { CBase::Release(); }
};


T>Или как-нибудь другие решения...


Если же CBase реализует какой то базовый интерфейс, например IUnknown, как в COM. Тогда можно сделать CBase шаблонным:
template<class Interface>
struct CBase: Interface
{
  void Release() { /*...*/ }
};


Соответственно:
struct CObject: CBase<IObject> {};
getboost.codeplex.com
citylizard.codeplex.com
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.