这章貌似我碰到的不多,就不多说了,以后遇到应该会回来翻书,到时候再总结。
先只说一下碰到的类型转换运算符。
15.5类型转换运算符
四种:
1、dynamic_cast :子类指针单向基类指针转换。继承,单向。
2、static_cast:用在有继承关系上的指针上,基类和子类可以互相转化,不限制方向。只限制继承关系。继承,双向。
3、const_cast:同类型const(非const)指针向非const(const)指针转换。最好是只在同类型之间转换const性,不要跨类型使用。因为如果跨完全没关系的两个类型,为啥不再定义一个呢?如果是有继承关系的为啥不用dynamic_cast 和static_cast呢?
4、reinterpret_cast:底层使用,瞅不明白。
在使用场景上都是将一个指针赋值给另一个指针时,由于类型不同导致的需要强制转换类型时使用。比如:
base_class_ptr = dynamic_cast<base_class*> son_class_ptr;//其他几种也都是这种场景。