C++ Dynamic_cast
2015-09-07 14:33
218 查看
dynamic_cast
1.基类中必须有虚函数,并且实现了。否则编译不过。
2.dynamic_cast<>方括号参数可以为指针和引用,如果是指针则 不成功时返回的是空指针。引用不成功时返回的是~~~在运行时抛出异常 badcast 程序终止。
3.必须为引用和指针。
4,支持兄弟类互相转换的语法,但是转换的结果指针为零而已。
static_cast
static 参数是可以为类的,没有类型检查,子类和父类没有类型检查。所以可以转换 但可能会出错(比如说调用某些子类没有的函数的时候,或者未初始化的变量的时候 因此是不安全的)。但是static_cast 还是比强制类型转换要严谨,起码它要求转换的两个类之间是要有父子关系的。不是随便的类都可以转换的。
reinterpret_cast 相当于c语言的强制类型转换 按下不表。
1.基类中必须有虚函数,并且实现了。否则编译不过。
2.dynamic_cast<>方括号参数可以为指针和引用,如果是指针则 不成功时返回的是空指针。引用不成功时返回的是~~~在运行时抛出异常 badcast 程序终止。
3.必须为引用和指针。
4,支持兄弟类互相转换的语法,但是转换的结果指针为零而已。
static_cast
static 参数是可以为类的,没有类型检查,子类和父类没有类型检查。所以可以转换 但可能会出错(比如说调用某些子类没有的函数的时候,或者未初始化的变量的时候 因此是不安全的)。但是static_cast 还是比强制类型转换要严谨,起码它要求转换的两个类之间是要有父子关系的。不是随便的类都可以转换的。
reinterpret_cast 相当于c语言的强制类型转换 按下不表。
相关文章推荐
- gcc 后 -l 和 -L的区别
- C++List用法
- Item 23:非成员非友元函数好于成员函数 Effective C++笔记
- c++:sprintf应用实例
- C++泛型算法
- C++ 16进制转10进制
- C++ 分离编译 多个文件
- C++数组做参数
- c/c++的memset()函数
- 黑马程序员-C语言基础之结构体数组
- C语言指针使用总结
- effective c++ 确定对象被使用前已经被初始化
- Effective C++——条款29(第5章)
- c语言之数据拷贝memcpy strcpy
- 随手写了一段C++访问LDAP, 并且获取sid的代码
- C++ 栈和队列
- C++学习笔记(六)文件处理
- 详解C++编程中的变量相关知识
- C++项目中的extern "C" {}
- 指针变量作为函数参数使用时注意的问题!