Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有4节课,
A类(抽象),
B 类(抽象),(作为成员变量,向量类型(A 类))
C 类,A 类的子类
D类,B类的子类
我可以将 D 类的成员变量重新定义为向量类型(C 类)而不是向量(A 类)。改为数组会更好。
不,您不允许这样做。由于以下情况,它不起作用:
如果 B 类中的函数将元素添加到属于 A 类(但不是 C 类)的向量,这在基类中是允许的,但对于特定的子类 (C) 则不允许,因为类型已更改。
我可以将 D 类的成员变量重新定义为向量类型(C 类)而不是向量(A 类)。
不,你不能。一旦在基类中声明了数据成员,它就会被所有派生类以完全相同的形式继承。
您可以做的是将基类成员转换为指向 的指针,A并初始化为指向 的实例A或 的实例C。
A
C