【发布时间】:2014-12-01 07:03:00
【问题描述】:
更新:我刚刚知道 c++ 支持多重继承。我认为多重继承是解决这个问题的最好方法..
我有一个关于多个派生类共享方法的问题。代码如下:
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();
}
对于A类和B类,method1()是一样的;对于 C 类和 B 类,method1() 是相同的。 (它使用基类成员作为参数)。
与其为A类和B类写相同的method1(),我认为这可以简化为:
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{}
但是现在对于 B 类和 C 类,method2() 也是一样的(它使用基类成员作为参数)。我能做些什么?有没有办法让 A&B 共享一种方法,而 B&C 共享另一种方法?
谢谢!
【问题讨论】:
-
还要检查
virtualinheritance。 -
谢谢。我刚知道c++支持多重继承。我认为多重继承是解决这个问题的最好方法..
标签: c++ inheritance derived-class virtual-functions