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
Post a Comment