Templates typeid、动态转换(向上转换)和模板
关于动态转换、typeid()和模板,我没有什么问题 1) 为什么typeid不需要RTTI 2) 多态类型上的动态\u强制转换:Templates typeid、动态转换(向上转换)和模板,templates,dynamic-cast,typeid,Templates,Dynamic Cast,Typeid,关于动态转换、typeid()和模板,我没有什么问题 1) 为什么typeid不需要RTTI 2) 多态类型上的动态\u强制转换: 当我使用RTTI编译过程进行向下转换(从基到派生)时 当RTTI关闭时-我收到一条警告(警告C4541:“dynamic_cast”用于多态类型“CBase”和/GR-;可能导致不可预测的行为) 当我执行向上转换(派生到基)时,无论是否使用RTTI,编译都会顺利进行 我不明白的是,为什么当我向上投射时,RTTI是关闭的——我没有收到任何警告/错误 3) 非多态类
- 当我使用RTTI编译过程进行向下转换(从基到派生)时 当RTTI关闭时-我收到一条警告(警告C4541:“dynamic_cast”用于多态类型“CBase”和/GR-;可能导致不可预测的行为)
- 当我执行向上转换(派生到基)时,无论是否使用RTTI,编译都会顺利进行
- 当我在有或没有RTTI的情况下进行向下转换时,编译失败(错误C2683:“dynamic_cast”:“CBase”不是多态类型)
- 当我使用RTTI或不使用RTTI进行向上转换时,编译过程会顺利进行