dynamic_cast主要用于执行“安全得向下转型”,而且基类中必须是多态类。
static_cast可以用于强制隐型转换,它还可以用于很多这样得转换得反向转换。但是它不能将一个const对象转换成一个non_const对象。最接近c类型得转换。如果基类中具有多态性,转换最好使用dynamic_cast
class Base{
virtual f(){}
}
class Deriver:Base{
}
Derivier* deriver;
Base *b = new Base;
deriver = dynamic_cast<Deriver*>(b);
deriver->f();
这种操作无法完成。
相关文章
- JavaScript call 和apply 的理解
- MVVM基础概念和理解
- 固定布局(fixed layout)、流体布局(fluid layout)、弹性布局(elastic layout)、响应布局(responsive layout)理解和技巧归纳
- PCIE的prefetchable和nonprefetchable的理解
- SQL Server代理(9/12):理解作业和安全
- A 01 如何理解会计中的借和贷
- python中def main_理解Python中的“defmain”和“重载”
- 如何理解spark中RDD和DataFrame的结构?
- 理解Spring Security中permitAll和anonymous的区别
- Java中同步和异步的区别是什么?优点缺点以及概念理解