【发布时间】:2020-08-13 15:41:44
【问题描述】:
我的代码中可以有多个基类吗?
我想编写一个多项式、序列、对数计算器(我以后可能会添加一些东西)
所以我想做:
class algebraicExpression //should it be algebraicExpression or arithmeticExpression
{
virtual void gather()=0;
virtual void show()=0;
}
polynomialWx、polynomialPx、sequenceAn、sequenceBn、sequenceCn 等类将继承自 algebraicExpression 这两个函数。问题是我应该将addition()、subtraction()、multiplication() 和division() 等函数放到algebraicExpression 类中还是创建:
class operation
然后把它放在那里,我知道序列不会使用这些,但 polynomials 和 logarithms 可以,也许我稍后会添加一些新的东西也会使用它。
还有例如:polynomialPx 是否可以继承自基类虚函数和 polynomialWx 属性,例如 int degree、float coefficients 等。
因为有人告诉我类似钻石问题,但我不知道它是否相关。
【问题讨论】:
-
在互联网上搜索“C++ 多重继承”。
-
您可能希望有中间基类:
binary_operation和unary_operation。一个代数表达式包含一个或多个二元运算和一个或多个一元运算(它实际上可以有零的一种类型,但必须至少有一个运算)。二元运算有一个运算符和两个操作数。一元运算包含一个操作数和一个运算符。 -
可以,但是如果你继承的类已经相关或者有冲突的成员标识符,就会变得复杂。
标签: c++ class polymorphism