Информация об изменениях

Сообщение Re[2]: side virtual method implementation от 12.02.2018 22:01

Изменено 12.02.2018 22:04 c-smile

Re[2]: side virtual method implementation
Здравствуйте, rg45, Вы писали:

R>Я бы предложил переименовать как-нибудь AbstractFooImpl::do_something. А потом подмешивать AbstractFooImpl при помощи дополнительного шаблонного класса:



А чем такой mixer лучше виртуального наследования:

class AbstractFoo {
  virtual int do_something() = 0;
}

class Manipula {}

class Bar : public virtual AbstractFoo, public Manipula {}

class AbstractFooImpl : public virtual AbstractFoo {
  int do_something() { return 0; }
}

class ConcreteBar : public Bar, AbstractFooImpl {}  
class ConcreteZap : public Zap, AbstractFooImpl {}


?
Re[2]: side virtual method implementation
Здравствуйте, rg45, Вы писали:

R>Я бы предложил переименовать как-нибудь AbstractFooImpl::do_something. А потом подмешивать AbstractFooImpl при помощи дополнительного шаблонного класса:



А чем такой mixer лучше виртуального наследования:

class AbstractFoo {
  virtual int do_something() = 0;
}

class Manipula {}

class Bar : public virtual AbstractFoo, public Manipula {}
class Zap : public virtual AbstractFoo, public Manipula {}

class ConcreteFoo : public virtual AbstractFoo {
  int do_something() { return 0; }
}

class ConcreteBar : public Bar, ConcreteFoo {}  
class ConcreteZap : public Zap, ConcreteFoo {}


?