c++ 中的cast
来源:互联网 发布:linux权限数字表示 编辑:程序博客网 时间:2024/06/03 15:59
其实的转换就是要定义的函数,包括一个参数的构造函数,拷贝构造函数,和赋值函数。
static_cast<new_type>(expr);
const_cast<new_type>(expr);
reinterpret_cast<new_type>(expr);
dynamic_cast<new_type>(expr);
dynamic_cast<new_type>(expr)
expr 只能是point 或者reference; new_type expr 类型必须一致;基类中必须有virtual;而且还要看具体情况,上下转。可以还原指针的匹配性。
static_cast<new_type> (expr)
将expr转换为new_type ,但是不检查类型转换安全;
1. 上行转换时安全的,下行转换时不安全的;
2.可以将空指针转换为指向类型的空指针;
3.内置类型的转换;
4. 指针转为void的指针;
static_cast 就是替代c语言的类型转换。
reinterpret_cast<new_type> (expr) 重新解释转换
这个转换很强大,很厉害,很牛逼,直接就是二进制copy,可以解释任何类型,但是就是不安全啦;两个类型没有任何关联。
const变量怎么赋值给非const变量呢?
要用const_cast方法,
总结:
dynamic_cast 要用virtual关键字 而且上行转换时安全的
static_cast 是替代c语言中的类型转换;
reinterpret_cast 二进制拷贝转换,两个没有任何关联的类型之间也可以转换
const_cast就是解决const变量赋值给非const变量的时候使用的;
0 0
- 明晰C语言中的floor, ceil和type cast
- 明晰C语言中的floor, ceil和type cast
- (ZZ)About Cast in C++(C++中的类型转换)
- 标准c++中的cast
- C++中的cast
- C++中的各种cast
- C++中的Cast
- c++ 中的cast
- SQL中的cast()函数
- SQL中的cast()函数
- SQL中的cast()函数
- sql中的cast函数
- sqlserver中的CAST()函数
- SQL中的cast()函数
- SQL中的cast()函数
- SQL中的cast()函数
- SQL中的cast()函数
- SQL中的cast()函数
- 使用achartengine 实现简单静态、动态折线图
- 数据库外键
- c++ stack,queue,vector用法
- 源文件与命令行执行九九乘法表
- POj 3126 Prime Path
- c++ 中的cast
- listview与adapter用法
- 【leetcode系列】3Sum
- JS关闭当前页面的办法
- UVA 540 Team Queue(入列和出列)
- SVN Checkout代码库 不包括源文件夹根目录
- 在美国当个程序员,没你想的那么难
- 《操作系统概念第六版》阅读笔记一 I/O子系统结构
- Maven依赖Scope标签用法