当前位置: 首页 > news >正文

哪个网站可以做投资回测2021拉新推广佣金排行榜

哪个网站可以做投资回测,2021拉新推广佣金排行榜,常德住房和城乡建设局网站,常州 微网站Chapter 4 Expressions 4.11 类型转换 4.11.2 其他隐式类型转换 数组转换成指针: 在大多数用到数组的表达式中,数组自动转换成指向数组首元素的指针: int ia[10]; int* ipa;♜ 当数组被用作decltype关键字的参数,或者作为取地…

Chapter 4 Expressions

4.11 类型转换

4.11.2 其他隐式类型转换

数组转换成指针:
在大多数用到数组的表达式中,数组自动转换成指向数组首元素的指针:

int ia[10];
int* ip=a;

♜ 当数组被用作decltype关键字的参数,或者作为取地址符(&)、sizeof及typeid等运算符的运算对象时,上述转换不会发生。
同样的,如果用一个引用来初始化数组,上述抓换也不会发生。

指针的转换:
C++还规定了几种其他的指针转换方式,
包括常量数值0或者字面值nullptr能转换成任意指针类型;
♜ 指向任意非常量的指针能转换成void*;
♜ 指向任意对象的指针能转换成const void*。

转换成常量:
允许将指向非常量类型的指针转换成指向相应的常量类型的指针,对于引用也是这样。
也就是说,如果T是一种类型,我们就能将指向T的指针或引用分别转换成指向const T的指针或引用:

int i;
const int &j=i;			//非常量转换成const int的引用
const int* p=&i;		//非常量的地址转换成const的地址
int &r=j;*q=p;			//错误:不允许const转换成非常量

相反的转换并不存在,因为它试图删除底层的const。
类类型定义的转换:
类类型能定义由编译器自动执行的转换,不过编译器每次只能执行一种类类型的转换。
如果同时提出多个转换请求,这些请求将被拒绝。

4.11.3 显示转换
强制类型转换(cast)
WARNING 虽然有时不得不使用强制类型转换,但这张方法本质上是非常危险的。
命名的强制类型转换
一个命名的强制类型转换具有如下形式:
cast-name(expression);
其中,type是转换的目标类型而expression是要转换的值。如果type是引用类型吗,则结果是左值。cast-name是static_cast、dynamic_cast、const_cast和reinterpret_cast中的一种。
cast-name指定了执行的是那种转换。
static_cast
任何具有明确定义的类型转换,只要不包含底层const,都可以使用static_cast。

int i=1,j=3;
//进行强制类型转换以便执行浮点数除法
double slope=static_cast<double>(j)/i;

注解:对j使用static_cast强制转换为double后,与i进行计算时,i会进行隐式转换将类型提升为double。
当需要把一个较大的算数类型赋值给较小的类型时,static_cast非常有用。
static_cast对于编译器无法自动执行的类型转换也非常有用。
例如,我们可以使用static_cast找回存在于void*指针中的值:

void *p=&d;		//正确:任何非常量对象的地址都能存入void*
//正确:将void*转换回初始的指针类型
double *dp=static_cast<double>*(p);

const_cast
const_cast只能改变运算对象的底层const:

const char* pc;
char *p=const_cast<char*>(pc);

对于将常量对象转换成非常量对象的行为,我们一般称其为”去掉const性质(cast away the const)“。
一旦我们去掉了某个对象的const性质,编译器就不再阻止我们对该对象进行写操作了。如果对象本身不是一个常量,使用强制类型转换获得写权限是合法的行为。
然而如果对象是一个常量,再使用cosnt_cast执行写操作就会产生未定义的后果。
只有const_cast能改变表达式的常量属性,使用其他形式的命名强制类型转换改变表达式的常量属性都将引发编译器错误。
同样的,也不能用const_cast改变表达式的类型:

const char *cp;
//错误:static_cast不能转换掉const性质
char *q=static_cast<char*>(cp);
static_cast<string>(cp);		//正确:字符串字面量转换成string类型
const_cast<string>(cp);			//错误:const_cast只能改变常量属性

const_cast常常用于有函数重载的上下文中。
reinterpret_cast

WARNING reinterpret_cast本质上依赖于机器,要想安全地使用reintepret_cast必须对涉及的类型和编译器实现转换的过程都非常了解。

建议:避免强制类型转换
强制类型转换干扰了正常的类型检查,因此我们强烈建议程序员避免使用强制类型转换。这个建议对于reinterpret尤其适用,因为此类类型转换总是充满了风险,在有重载函数的上下文中使用const_cast无可厚非;但是在其他情况下使用const_cast也就意味着程序存在某种设计缺陷。其他强制类型转换,比如static_cast和dynamic_cast,都不应该频繁使用。每次书写了一条强制类型转换语句,都应该反复斟酌能否以其他方式实现相同的目标。就算实在无法避免,也应该尽量限制类型转换值的作用域,并且记录相关类型的所有假定,这样可以减少错误发生的机会。

旧式的强制类型转换
在早期版本的C++语言中,显式地进行强制类型转换包含两张形式:

type (expr);		//函数形式的强制类型转换
(type) expr;		//C语言风格的强制类型转换
http://www.yidumall.com/news/26876.html

相关文章:

  • 临沂建设网站搭建一个网站的流程
  • 很有质感的网站百度手机下载安装
  • 北京互联网企业有哪些google搜索优化
  • 网站网址前的小图标怎么做的营销推广seo
  • ps培训班要学多久多少钱北京seo优化wyhseo
  • 17网站一起做网店 发货慢seo辅助工具
  • 上海网站建设领导品牌厦门网站seo哪家好
  • 高端的网站设计公司搜索引擎优化工具
  • 中山网站制作定制网站维护的主要内容
  • 十大电子游戏平台网站广州网站快速优化排名
  • 牛商网 做的p2p网站旺道seo推广系统怎么收费
  • 高端建站下载百度2023最新版
  • 个人做网站全球网站排名前100
  • 怎么建自己的手机网站关键词一般是指什么
  • 德州建设网站公司百度售后电话人工服务
  • 怎么添加wordpress模板文件夹搜索引擎优化答案
  • 彩票网站开发系统如何搭建seo网络推广优势
  • 响应式网站建设服务提供商百度推广账号怎么申请
  • 怎么做公司网站文案网站安全检测在线
  • 精品课网站制作seo推广公司招商
  • 常州企业建站系统关键信息基础设施安全保护条例
  • 沙湾移动网站建设全网关键词搜索工具
  • 网站制作排版网站推广如何做
  • 做搜狗手机网站点泰安百度推广代理
  • 工信部网站备案信息怎么查询seo推广话术
  • 郑州做网站的联系方式宁波网站优化公司电话
  • 网站建设与管理asp营销培训心得体会
  • 哪个网站是专门做兼职的百度推广怎么注册账号
  • visual studio做的网站贵港网站seo
  • 做网站单网页做网站的公司