我有4个班级,
A类(摘要),
B类(摘要),(作为成员变量,类型为向量(A类))
C类,A类的子类
D类,B类的子类
我可以将类D的成员变量重新定义为vector类型(Class C)而不是vector(类A)。相反,成为一个阵列会更好吗?
答案 0 :(得分:0)
不,你不被允许这样做。由于以下情况,它不起作用:
如果B类中的函数向A类(但不是C类)的向量添加了一个元素,则在基类中允许这样做,但对于特定的子类(C)则不允许,因为类型已经改变。 / p>
答案 1 :(得分:0)
不,你不能。一旦在基类中声明了数据成员,它就会以完全相同的形式由所有派生类继承。我可以将类D的成员变量重新定义为vector类型(Class C)而不是vector(类A)。
您可以做的是将基类成员转换为指针到A
,并初始化以指向A
的实例或{的实例{1}}。