指向基类对象的指针不能赋值派生类对象指针我可以理解

来源:百度知道 编辑:UC知道 时间:2024/05/22 17:51:40
但是为什么只有强制类型转换就可用呢,强制类型转换到底做了什么工作呢

强制类型转换可以解决所有由于类型差异造成的不能计算。 (至少可以通过编译这一步)

至于这个操作做了什么, 在c语言中这个很简单, 而在c++中这个很复杂, 他可能进行了构造(如果提供了这个构造函数),可能需要改变一个类的布局(由于多重继承的原因。。), 也可能什么都不做(只是让这句编译通过)

由于这件事情的复杂性和强制类型转换的可怕性,c++中把它拆成4种类型转换操作, 推荐尽量用这四种方式,而不要再用c风格的强制类型转换。

如果你想要深入了解这方面的东西,推荐你去看看lippman(C++ primer的作者)写的那本Inside The C++ Object Model(不适合新手)