c++强制类型转换小结
来源:互联网 发布:war3 for mac的密匙 编辑:程序博客网 时间:2024/05/15 01:08
1、dynamic_cast可以被用来将一种指针类型强制转换成另一种指针类型,或者将一种引用类型强制转换成另一种引用类型。 只有当被转换的对象是一个目标类型的对象或者是从一个目标类型派生出来的对象时,dynamic_cast才能成功执行。 例: Base *bp,b_ob; Derived *dp,d_ob; dp=dynamic_cast<Derived *>(&b_ob); //error!父类指针不能转为子类指针 bp=dynamic_cast<Base *>(&d_ob);//correct!子类指针可以转为父类指针 bp=&d_ob; dp=dynamic_cast<Derived *>(bp);//correct!父类指针bp实际指向的是子类对象,可以转为子类指针 bp=&b_ob; dp-dynamic_cast<Derived *>(bp);//error!父类指针实际指向的是父类对象,不可以转为子类指针 dp=&d_ob; bp=dynamic_cast<Base *>(dp);//correct!子类指针可以转为父类指针 2、const_cast最常用的用途就是删除const属性 例: void sqrval(const int &val) { int *p; p=const_cast<int *>(val);//通过const _cast抛掉了val的const属性,val值变得可修改 *p=*val**val; } int main() { int x=10; cout<<"x before call:"<<x<<endl; sqrval(&x); cout<<"x after call:"<<x<<endl; } 3、static_cast运算符执行非多态转换,任何标准转换都可以使用它,并且不执行运行时检查。 例: int i; static_cast<double>(i);//correct 4、reinterpret_cast运算符把一种类型转换成一个不同的类型。可以把一个指针类型转换成一个整数等。 例: char *p="hello"; int i; i=reinterpret_cast<int>(p); |
- c++强制类型转换小结
- c++强制类型转换小结
- c++-----强制类型转换
- 【C++】强制类型转换
- C 强制类型转换
- C 强制类型转换
- C 强制类型转换
- C/C++强制类型转换。。。
- c/c++强制类型转换
- C语言类型强制转换
- c/c++强制类型转换
- C语言强制类型转换
- C中的类型强制转换
- c/c++强制类型转换
- C语言类型强制转换
- C/C++类型强制转换
- C语言强制类型转换
- C指针强制类型转换
- 关于位结构体
- hibernate使用from (select ……)子查询的方法
- 如何用正确的方法来写出质量好的软件的75条体会
- maven 配置篇 之pom.xml
- suse linux 硬盘安装心得
- c++强制类型转换小结
- 。。。。。。。
- 程序员的九重境界
- 软件工程与工业工程
- Word去掉所有超级链接
- 门当户对
- hibernate的注释信息
- Oracle 10G服务器安装图解 1
- 存储过程入门