0

我有4节课,

A类(抽象),

B 类(抽象),(作为成员变量,向量类型(A 类))

C 类,A 类的子类

D类,B类的子类

我可以将 D 类的成员变量重新定义为向量类型(C 类)而不是向量(A 类)。改为数组会更好。

4

2 回答 2

0

不,您不允许这样做。由于以下情况,它不起作用:

如果 B 类中的函数将元素添加到属于 A 类(但不是 C 类)的向量,这在基类中是允许的,但对于特定的子类 (C) 则不允许,因为类型已更改。

于 2012-12-17T10:33:36.403 回答
0

我可以将 D 类的成员变量重新定义为向量类型(C 类)而不是向量(A 类)。

不,你不能。一旦在基类中声明了数据成员,它就会被所有派生类以完全相同的形式继承。

您可以做的是将基类成员转换为指向 的指针A并初始化为指向 的实例A或 的实例C

于 2012-12-17T10:33:45.043 回答