我有一个基类A,它有一个子类B. A覆盖+运算符,B也会覆盖它,调用父级的+运算符,并将结果转换为B.然后我收到错误消息:
错误C2440:'':无法从'A'转换 到'B'
我认为多态性的工作方式应该能够实现吗?
答案 0 :(得分:8)
在多态中,您无法将A
转换为B
,您可以将B
转换为A
。 B是一种A,但A不是B。
例如,在经典的Shape类中。如果您的课程Shape
和课程Rectangle
扩展[继承自] Shape
,则无法将Shape
实例转换为Rectangle
,但您可以将Rectangle
投射到Shape
,因为它是'一种'形状。