将静态变量分配给非静态变量

时间:2016-11-08 10:08:05

标签: c++ c++11 visual-c++

考虑Base类,其中派生了A类和BaseB类。从BaseB派生出C类。所有clases都继承非静态变量“y”,但在BaseB和C类的情况下,“y”具有相同的值。 我用以下代码解决了这种情况:

ggplot2::facet_grid()

它有效,但是对于这种情况,将静态变量分配给非静态变量是正确的吗?

1 个答案:

答案 0 :(得分:2)

从语言合法性的角度来看,这很好,但这有点奇怪。

据推测,您无法制作Base::y static,因为这会干扰班级A的行为?

您只需要知道BaseB的实例将共享相同的x,但可能具有不同的y值。这是预期的行为吗?

就个人而言,我会考虑在基类中使void registerValue()成为纯虚函数,并且期望所有派生类来实现该方法,包括其实现所需的所有存储。也许这需要一个基类函数virtual int getRegistedValue() = 0