skyer

|
分享:
▲
▼
1. C-Style 转型.. 就是硬转,管 Class 有没有关系 在 Compile & Runtime 不作任何检查.. 一但出错就是....当! 在这里,这个转型是合法的.. 子类别可以转型成父类别
2. 感觉怪怪的.. Car* pCar = static_cast <Car*> pPorsche; 这样好些 :p static_cast 转型的话,会作 compile-time check。 也就是说,如果你要把 a 转成 b, 而 a, b 是没有任何关系的 object 则在编译时,就会有 error message
static_cast 不作 runtime-check, 一但出错就是.... 当!
3. 先将 pCar 转回成 Porsche, 再呼叫 Porsche 的 member function - maxSpeed()
PS: C++ 的转型还有 * dynamic_cast 跟 static_cast 的差别就是会作runtime check, 如果无法转型的话,会传回 NULL
* reinterpret_cast 我的感觉就是跟 C-Style 转型一样,但好像有点小区别.. 这个好像有加上一点限制
此文章被评分,最近评分记录财富:30 (by codeboy) | 理由: 感谢帮忙讲解喔~^^ | |
|
|
|