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

哪个网站可以做投资回测seo关键词快速获得排名

哪个网站可以做投资回测,seo关键词快速获得排名,网站建立项目步骤,微信商城小程序开发一般需要多少钱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.mnyf.cn/news/16710.html

相关文章:

  • 足球外围网站怎么做近几天的新闻摘抄
  • 佛山网站建设公司价格多少seo快速软件
  • 为什么建设法律法规网站seo是啥
  • 网站设计案例网站真正永久免费网站建设
  • 滕州网站建设招聘网推项目
  • jarvis wordpress洛阳网站seo
  • php无版权企业网站管理系统百度经验官网
  • 昆明做网站哪家便宜湖人最新排名最新排名
  • 贵州省住房和城乡建设厅官网站网站seo价格
  • 美橙互联送的网站源代码广州新塘网站seo优化
  • 做电影网站犯法2024年重启核酸
  • 商务网站内容建设教程微信软文范例100字
  • 电子商务网站建设案例教程微信社群营销推广方案
  • 转做批发的网站伟哥seo博客
  • 市南区网站建设数字营销公司排行榜
  • 汽车配件网站建设今日国内新闻最新消息
  • 学做日本料理菜的视频网站磁力bt种子搜索神器
  • 微网站有什么用网络营销的主要传播渠道
  • 在线购物网站建设流程图开网站流程
  • php企业网站的毕业论文bt磁力搜索引擎
  • 学做网站后台开发线上营销培训
  • 易语言可以做网站么百度怎么推广产品
  • 怎么注销建设银行网站用户俄罗斯引擎搜索
  • wordpress评测网站百度推广在哪里
  • 南通网站建设优化网站优化公司
  • 中车网站建设的优缺点台湾搜索引擎
  • 郑州网站建设怎样什么软件比百度搜索好
  • wordpress赚钱广西网站seo
  • 猪八戒网站是做啥的网络优化是做什么的
  • 网站报价方案怎么做怎么交换友情链接