Jam*_*mes 1 c++ polymorphism compiler-errors
我有一个基类A,它有一个子类B.一个覆盖+运算符,B也覆盖它,调用父的+运算符,并将结果转换为B.然后我收到错误消息:
错误C2440:'':无法从'A'转换为'B'
我认为多态性的工作方式应该能够实现吗?
在多态中你无法转换A为B,你可以转换B为A.B是一种A,但A不是一种B.
例如,在经典的Shape类中.如果你有一个类Shape和一个Rectangle扩展[继承自]的类Shape,你不能将Shape实例转换为Rectangle,但你可以转换Rectangle为Shape,因为它是'一种'形状.
| 归档时间: |
|
| 查看次数: |
4800 次 |
| 最近记录: |