考虑Base类,其中派生了A类和BaseB类。从BaseB派生出C类。所有clases都继承非静态变量“y”,但在BaseB和C类的情况下,“y”具有相同的值。 我用以下代码解决了这种情况:
ggplot2::facet_grid()
它有效,但是对于这种情况,将静态变量分配给非静态变量是正确的吗?
答案 0 :(得分:2)
从语言合法性的角度来看,这很好,但这有点奇怪。
据推测,您无法制作Base::y
static
,因为这会干扰班级A
的行为?
您只需要知道BaseB
的实例将共享相同的x
,但可能具有不同的y
值。这是预期的行为吗?
就个人而言,我会考虑在基类中使void registerValue()
成为纯虚函数,并且期望所有派生类来实现该方法,包括其实现所需的所有存储。也许这需要一个基类函数virtual int getRegistedValue() = 0
?