c++进阶笔记(继承下的类型转换、虚函数表、运算符重载、模板
一 继承下的类型转换
- c++继承:
c++支持多继承,也就是一个子类继承自多个父类; - 继承相关的类型转换:
在使用中父子类型的继承是泛型的一种,通常一个类的指针可以通过类型转换表示多种类型;c++类对象类型转换有两种方式static_cast和dynamic_cast;
- static_cast 是静态转换类型
pA为A类型对象指针,pB为B类型对象指针,注意为指针;
pA = static_cast(pB); - dynamic_cast 是动态转换类型,带类型检测
pA为A类型对象指针,pB为B类型对象指针,注意为指针;
pA = dynamic_cast (pB); - 区别:
上行(子–>父), 无差别
下行 (父–>子),dynamic_cast更安全些,这里的安全指内存使用上的可靠、可预期性;在转换时子类中通常包含更多的成员,因此转换中父类到子类一些成员存在空异常;