c++强制类型转换补充
来源:互联网 发布:网络销售投资 编辑:程序博客网 时间:2024/06/06 03:17
c++要添加几种新式类型转换的原因:
1.旧式的类型转换几乎允许将任何其他类型转换成你需要的类型,这是非常拙劣的。
2.旧式的类型转换不容易辨识。
c++的四种新的类型转换:
static_cast:与旧式的类型转换功能一样,不可以在赋值类型不兼容的类型之间转换。如:将一个struct转换为int,或者将
一个int 转换成指针pointer。
const_cast:改变表达式中的常量性及易变性。例:
class A {....};
class B :public A {.....};
void fun(B *ptr);
A a;
B b;
const B& bb=b;
fun(&bb);//错误,将const类型传递给了非const类型
fun(const_cast<B*>bb);//正确
fun(&a);//错误,a是A类型,类型不同
fun(const_cast<B*>a);//错误,const_cast不能用于有继承关系的类。
3.dynamic_cast:应用在具有继承关系的向下转换中,且无法应用在没有虚函数的类型上。
4.reinterpret_cast:最不安全的类型转换。且与编译平台息息相关,不具有移植性。
最常用的用途是转换“函数指针”,尽量不要使用,除非万不得已。
阅读全文
0 0
- c++强制类型转换补充
- c++-----强制类型转换
- 【C++】强制类型转换
- C 强制类型转换
- C 强制类型转换
- C 强制类型转换
- C/C++强制类型转换。。。
- c/c++强制类型转换
- C语言类型强制转换
- c/c++强制类型转换
- C语言强制类型转换
- C中的类型强制转换
- c/c++强制类型转换
- C语言类型强制转换
- C/C++类型强制转换
- C语言强制类型转换
- C指针强制类型转换
- c/c++强制类型转换
- Tensorflow-简单使用
- 按时间给问候语 这样找规律有漏洞吗?
- MySQL 删除数据表
- 检查金币 oj136
- Leetcode OJ 70 Climbing Stairs [Easy]
- c++强制类型转换补充
- 输入一个正整数数组,输入一个正整数数组,把数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。
- Python安装配置教程
- 羊皮卷之八
- React Native 第二天
- (93)DataStream(操作基本数据类型)、ByteArrayStream(操作字节数组)
- python selenium 1
- MySQL 插入数据
- VC中串口使用的详细解答--包括串口编程的流程