社区
C++ 语言
帖子详情
新手,什么是cast语法,求教
discory
2004-10-26 01:45:38
static_cast<type>(var)
什么意思,有什么用,一般什么情况使用,有什么好处
...全文
84
4
打赏
收藏
新手,什么是cast语法,求教
static_cast(var) 什么意思,有什么用,一般什么情况使用,有什么好处
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xuzheng318
2004-10-26
打赏
举报
回复
学习,帮顶,接分!
lynnboy
2004-10-26
打赏
举报
回复
cast
原意是“分派角色”,在程序语言中是“重新解释或转换对象的类型”。
C++从传统C继承来的Cast语法:
type(ezpr)
或
(type)value
将值通过内部类型转换操作符函数或程序员写的类型转换操作符函数构造出符合type类型的对象值。
但是,程序员们通过多年的实践总结出,cast的非法使用通常是大量而且非常难于发现的Bug发生的原因。所以,C++标准重新规定了一组语法更加明确的cast运算符:
static_cast<type>(expr)
将值通过类型转换运算符构造新的type值,这是传统cast的通常功能。比如:
int a = 10;
char c = static_cast<char>(a);
static_cast<char>(a)通过char operator char(int);从a产生一个char的临时对象,在赋值给c。
const_cast<type>(expr)
针对对象的const,volatile,mutable属性进行更改。
如果一个对象已有内存分配,则通常仅仅对编译器进行重新解释。
如果一个对象原本是编译时常数值,则需要编译器产生实际的内存分配。比如
const int a = 100; // a=100 是编译时常数
int *p = & const_cast<int>(a); // 导致为a分配存储。
reinterpret_cast<type>(expr)
这个cast运算符将对象的内存内容强制解释为type类型的对象内容。
dynamic_cast<type>(expr)
这个是用于RTTI支持打开时,在继承树中对类指针或引用进行安全cast的运算符。RTTI支持为每个类的继承树构造一个树状的type_info继承表,当进行cast时,就在这个树状结构中寻找,如果找到合法基类或合法派生类的type_info,则cast成功,并返回相应的指针或引用,如果失败,抛出异常
wshcdr
2004-10-26
打赏
举报
回复
还有一个dynamic_cast 在基类指针转化成子类指针时用
goodluckyxl
2004-10-26
打赏
举报
回复
是c++特殊强制转化语法
static_cast<type>对象强制转化
const_cast<>是去掉 加上常量属性
reintepret<type*>对于指针强化
...
Mysql8
cas
t
语法
错误 - 版本差异
文章目录背景
cas
t 介绍问题查找mysql 官方升级日志解决方案升级mysql版本转换为decimal后记 有时候mysql版本不一致,也是个巨大的地雷啊~ 踩着了那就开花喽~ 背景 一个大版本上线的时候,测试突然说卡住了后台报错,...
cas
t和convert用法和区别
语法
:
cas
t(字段a as 类型b) 释义:把字段a的类型转换成类型b,as不可省略 举例:order by
cas
t (id as integer ) desc id为字符串型,则需要转换为整数进行排序 2、convent
语法
:convent(字段a 类型b) 释义:把...
SQL中的
cas
t()函数
一、
语法
:
CAS
T (expression AS data_type) 参数说明: expression:任何有效的SQServer表达式。 AS:用于分隔两个参数,在AS之前的是要处理的数据,在AS之后是要转换的数据类型。 data_type:目标系统所提供...
计算机
cas
t函数是什么意思,SQL中的
cas
t()函数介绍
语法
:
CAS
T (expression AS data_type)参数说明:expression:任何有效的SQServer表达式。AS:用于分隔两个参数,在AS之前的是要处理的数据,在AS之后是要转换的数据类型。data_type:目标系统所提供的数据类...
mysql
cas
t( as int) error,为什么在MySQL中使用
CAS
T时会出现
语法
错误?
I am using MySQL workbench v5.2.44 ... I am running it against a local MySQL 5.5 install.I am trying to use the
CAS
T function, but keep getting the following error:syntax error, unexpected INT_SYMIt d...
C++ 语言
64,654
社区成员
250,484
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章