c++ - How to combine template method pattern and multiple inheritance? -


can change code make work? possible combine template method pattern , multiple inheritance? seems convenient implement different algorithms in different classes. thank you.

class tbase { public:     virtual void do1() const = 0;     virtual void do2() const = 0;      void do() const {         do1();         do2();     } };  class tfirstalgorithm { public:     void do1() const {} };  class tsecondalgorithm { public:     void do2() const {} };  class talgorithm     : public tbase     , public tfirstalgorithm     , public tsecondalgorithm {}; 

fundamentally, problem tfirstalgorith::do1 isn't related tbase::do1 (and likewise tsecondalgorithm::do2 tbase::do2.

one possible way fix make them related:

class tbase { public:     virtual void do1() const = 0;     virtual void do2() const = 0;      void do() const {         do1();         do2();     } };  class tfirstalgorithm : public virtual tbase { public:     void do1() const { } };  class tsecondalgorithm : public virtual tbase { public:     void do2() const { } };  class talgorithm     : public tfirstalgorithm     , public tsecondalgorithm {}; 

Comments

Popular posts from this blog

django - How can I change user group without delete record -

java - Need to add SOAP security token -

java - EclipseLink JPA Object is not a known entity type -