update: I just got to know c++ supports multiple inheritance. I think multiple inheritance is the best way to solve this problem..
I have a question about multiple derived classes sharing method.. The code is as below:
class Base{
public:
virtual double method1();
virtual double method2();
}
class A::public Base{
public:
virtual double method1();
virtual double method2();
}
class B::public Base{
public:
virtual double method1();
virtual double method2();
}
class C::public Base{
public:
virtual double method1();
virtual double method2();
}
class D::public Base{
public:
virtual double method1();
virtual double method2();
}
For class A and B, method1() is the same; for class C and B method1() is the same. (it uses the base class members as arguments).
Instead of writing the same method1() for class A and class B, I think this can be simplified by:
class subBase1::public Base{
public:
void double method1();
}
class A::public subBase1{}
class B::public subBase1{}
class subBase2::public Base{
public:
void double method1();
}
class A::public subBase2{}
class B::public subBase2{}
But now for class B and C, method2() is also the same (it uses the base class members as arguments). What can I do? Is there anyway to have A&B share one method, and B&C share another method?
Thanks!