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

网站设计培训班如何便利店网站建设拓扑图

网站设计培训班如何,便利店网站建设拓扑图,岳阳建设网站制作,app下载安装官方网站#x1f496;作者#xff1a;小树苗渴望变成参天大树#x1f388; #x1f389;作者宣言#xff1a;认真写好每一篇博客#x1f4a4; #x1f38a;作者gitee:gitee✨ #x1f49e;作者专栏#xff1a;C语言,数据结构初阶,Linux,C 动态规划算法#x1f384; 如 果 你 … 作者小树苗渴望变成参天大树 作者宣言认真写好每一篇博客 作者gitee:gitee✨ 作者专栏C语言,数据结构初阶,Linux,C 动态规划算法 如 果 你 喜 欢 作 者 的 文 章 就 给 作 者 点 点 关 注 吧 文章目录 前言一、C语言的类型转换二、为什么C需要四种类型转换三、 C强制类型转换四、总结 前言 今天将一个知识量不是很大而且建议使用的东西相信大家看到类型转换的时候就觉得这不是C语言的时候就学了吗为什么现在拿出来提但又看到C的类型转换说明这是C新出来的大家都是知道C是兼容c语言的所以再C里面的类型转换再C里面也适用而今天将的是C里面的类型转换是为了规范C语言里面类型转换出现的不安全问题所以接下来我们就来进入正文进行讲解。 一、C语言的类型转换 在C语言中如果赋值运算符左右两侧类型不同或者形参与实参类型不匹配或者返回值类型与 接收返回值类型不一致时就需要发生类型转化C语言中总共有两种形式的类型转换隐式类型 转换和显式类型转换 显示类型转换 我们来看案例 int main() {//显示的类型转换//相关类型的显示类型转换int i 0;int* p i; int address (int)p;double b 1.1;//可能会造成精度丢失i (int)b;//不相关类型的显示类型转换vectorint v;string s;v (vectorint)s;return 0; }隐式类型转换 void insert(size_t pos, char ch) {int end 10;while (end pos)//会进行隐式类型转换将end类型转换成int,会死循环{cout end endl;//...--end;} }double b 1.1; i b;const变量也可以修改 const int n 10;//转换有安全隐患的int* p (int*)n;(*p);cout n endl;cout *p endl;大家看到从监视窗口看到的值和打印的值不一样原因就是监视窗口里面的值是内存里面里面的值而打印的时候没有直接去内存里面去拿值而是再寄存器的时候直接进行的替换我们可以使用一个关键字让他到内存里面取volatile 上面的办法就是让const去掉常性。 上面的几种场景我们发现都可能会出现问题而且每种转换可视性较差所以的转换都是相同的方式再前面加类型就可以看需要人自己来判断。 二、为什么C需要四种类型转换 C风格的转换格式很简单但是有不少缺点的 隐式类型转化有些情况下可能会出问题比如数据精度丢失显式类型转换将所有情况混合在一起代码不够清晰 因此C提出了自己的类型转化风格注意因为C要兼容C语言所以C中还可以使用C语言的转化风但是建议使用c11出来的风格。 三、 C强制类型转换 标准C为了加强类型转换的可视性引入了四种命名的强制类型转换操作符 static_cast、reinterpret_cast、const_cast、dynamic_cast 1static_cast用于非多态类型的转换静态转换编译器隐式执行的任何类型转换都可用 static_cast但它不能用于两个不相关的类型进行转换 double b 1.1; i static_castint(b); 这样就可以很好的知道这是隐式类型转换。 2reinterpret_cast操作符通常为操作数的位模式提供较低层次的重新解释用于将一种类型转换 为另一种不同的类型 double d 12.34;int a static_castint(d);cout a endl;// 这里使用static_cast会报错应该使用reinterpret_cast//int *p static_castint*(a);int *p reinterpret_castint*(a);3const_cast最常用的用途就是删除变量的const属性方便赋值 int* p const_cast int*(a );*p 3;couta endl;4dynamic_cast用于将一个父类对象的指针/引用转换为子类对象的指针或引用(动态转换) 向上转型子类对象指针/引用-父类指针/引用(不需要转换赋值兼容规则) 向下转型父类对象指针/引用-子类指针/引用(用dynamic_cast转型是安全的) dynamic_cast只能用于父类含有虚函数的类dynamic_cast会先检查是否能转换成功能成功则转换不能则返回0 这是指针c特有的c语言没有继承 我们来看一个例子 class a { public:virtual void f() {}int _x 0; };class b : public a { public:int _y 0; }; void fun(A* pa) {B* pb (B*)pa;pb-_x;pb-_y; }int main() {A aa;fun(aa);B bb;fun(bb);return 0; }我们再传参的时候形参接收实参的过程是向上转型没有问题但是函数体里面有一个将父类指针强转给子类指针第一中会报错原因是我们B*让pa的访问范围变大了本来就智能访问_x,现在可以访问_y,而A类里面没有_y就会报错这种错误我们是很难知道的所以需要使用 dynamic_cast void fun(A* pa) {//pa是指向子类对象B的转换可以成功正常返回地址// pa是指向父类对象A的转换失败返回空指针B* pb dynamic_castB*(pa);if (pb){cout 转换成功 endl;pb-_x;pb-_y;}else{cout 转换失败 endl;} }这样就很好的避免我们上面会出现到的问题了 注意 强制类型转换关闭或挂起了正常的类型检查每次使用强制类型转换前程序员应该仔细考虑是 否还有其他不同的方法达到同一目的如果非强制类型转换不可则应限制强制转换值的作用 域以减少发生错误的机会。强烈建议避免使用强制类型转换 四、总结 到这里面我们的类型转换就讲解完毕了大家再平时中试着慢慢使用这些对以后再开发中又帮助可以帮助我们减少很多不必要的麻烦这节的内容不难大家下来好好的去理解一下我么拿下篇介绍特殊类的设计。
http://www.hkea.cn/news/14375508/

相关文章:

  • 用来做视频连接的网站黄山游玩攻略及费用
  • 设计网站登录框ps怎么做城乡建设部官网查证
  • 辽宁建设厅网站wordpress 粉丝
  • 越秀高端网站建设湖北网页
  • 自己可以申请网站做外卖吗湖南营销型网站建设流程
  • wordpress仿菜鸟教程官网seo属于运营还是技术
  • 网站定位住房建设官方网站
  • 雅虎网站优化怎么做互动网站的核心技术
  • angular2做的网站有网络精准推广
  • 医院网站怎么做优化排名工业设计专业最好的大学
  • 网站的企业风采怎么做WordPress副标题不显示
  • h5网站开发工具设计平台属性
  • 茶叶网站建设规划书wordpress主题滑动
  • 投资公司网站模板品牌的宣传及推广
  • 网站一键生成wap股票海选公司用什么网站
  • 青岛做网站seo什么是淘宝seo
  • 广州网站制作教程推网站
  • 网站欢迎页设计网站页面的滑动怎么做的
  • 我想做个卷帘门网站怎么做做视频可以赚钱的网站
  • 揭阳网站建设托管宁波论坛
  • 温州专业制作网站做效果图网站有哪些
  • 建设网站答辩情况wordpress做资源下载站
  • 内蒙古地区做推广网站抖音是哪家公司开发的软件
  • 重庆建设厂网站百色优惠welcome
  • 表格布局网站湖南大型网站建设公司
  • 全网营销网站建设沈阳男科医院在线咨询免费
  • 网站续费合同书金牛网站建设
  • 动漫网站的设计与实现营销师资格证
  • 公司网站建设需要什么科目徐州制作网站的公司有哪些
  • 网站服务器停止响应怎么办单页面的网站模板免费下载