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

江西宗杰建设工程有限公司网站网站怎么备案啊

江西宗杰建设工程有限公司网站,网站怎么备案啊,防水网站怎么做,2019年的阜南县建设修路网站本篇博客让我们来见识一下C中新增的类型转换方法 文章目录1.C语言中类型转换2.C中的强制类型转换2.1 static_cast2.2 reinterpret_cast2.3 const_castvolatile关键字2.4 dynamic_cast3.C强制类型转换的作用4.RTTI1.C语言中类型转换 在C语言中#xff0c;类型转换有下面两种形…本篇博客让我们来见识一下C中新增的类型转换方法 文章目录1.C语言中类型转换2.C中的强制类型转换2.1 static_cast2.2 reinterpret_cast2.3 const_castvolatile关键字2.4 dynamic_cast3.C强制类型转换的作用4.RTTI1.C语言中类型转换 在C语言中类型转换有下面两种形式 隐式类型转换显示强制类型转换int a(int)c 这两种方式想必各位都很熟悉了但隐式类型转换在一些场景里面会出现问题 void insert(size_t pos,char c) {int end10;while(endpos){end--;}//... }上面的代码中end是int类型当进行比较的时候end会-1直到小于pos 如果pos0问题就来了 隐式类型转换会让end在比较的时候被转换为size_t无符号整型而在无符号整型中-1是一个非常大的正数从而导致这个函数进入死循环 隐式类型转换可能会丢失数据的精度显示类型转换的写法都一样导致不能很好的区分情况 C委员会也是认识到了这里的问题当产生隐式类型转换的时候难以跟踪错误的来源于是开发了下面的新的类型转换方式 不过因为C兼容C语言所以C中的转换方式依旧支持 2.C中的强制类型转换 C中新增了下面四种明明的强制类型转换操作符 static_cast、reinterpret_cast、const_cast、dynamic_cast2.1 static_cast 这个关键字是用于相近类型之间的转换的比如double和intchar和int之间 double d 11.4;int a1 static_castint(d);//相近类型的转换char ch a;int a2 static_castint(ch);cout a1 endl;cout a2 endl;2.2 reinterpret_cast 这个关键字用于不相近类型之间的转换比如指针转成int int* p a1;//int x static_castint(p);//报错类型转换无效int x reinterpret_castint(p);//非相近类型中的转换cout x endl;打印的结果如下每次运行都不一样 20294082.3 const_cast 如同其名这个关键字的作用是取消一个变量的const属性 const int c1 3;//这里定义的变量是在栈上的可以间接修改 int* ptr1 const_castint*(c1);//取消const权限 *ptr1 4; cout c1 endl;//修改了地址之后没有变化 cout *ptr1 endl;欸为什么我们取地址之后修改为4了变量c1本身不会变化呢 这是因为编译器做了一些优化把c1放到了某个地方取的时候并没有直接去内存里面取 volatile关键字 这里我们可以使用volatile关键字修饰变量要求每一次都必须要去内存中取 //volatile关键字每次访问c都去内存中取屏蔽编译器优化 volatile const int c2 3; int* ptr2 const_castint*(c2);//取消const权限 *ptr2 4; cout volatitle: ; cout c2 endl; cout *ptr2 endl;2.4 dynamic_cast 该关键字是用于继承中将一个父类的指针/引用转换为子类对象的指针/引用 之前学习继承的时候我们了解过 向上转型父类的指针、引用可以直接指向子类对象的指针/引用这是一个赋值兼容的规则不需要进行转换向下转型反过来之后可以直接赋值吗不够安全 dynamic_cast的作用就是判断一个父类指针指向的是不是他的子类 如果是能够成功转换不能则返回0 这个关键字最大的作用便是可以帮我们判断这个父类指针/引用指向的是否为一个子类对象 class A { public:virtual void f() {} }; class B : public A {};void fun(A* pa) {// dynamic_cast会先检查是否能转换成功能成功则转换不能则返回0B* pb1 static_castB*(pa);B* pb2 dynamic_castB*(pa);cout pb1: pb1 endl;if (pb2){cout 转换成功pb2: pb2 endl;}else{cout 转换失败pb2: pb2 endl;}}void test2() {A a;B b;fun(a);fun(b); }这里有个要求那便是父类中必须要有虚函数多态否则无法成功转换 3.C强制类型转换的作用 C希望我们规范强制类型转换的情景针对性的调用不同的关键字 但是由于它没有强制在实际情况中用的反而不多 不过需要注意的是强制类型转换会关闭/挂起正常的类型检查在强制类型转换之前我们要仔细检查是否还有别的方法来达到目的。最好是避免使用强制类型转换! 4.RTTI 之前学习智能指针的时候我们学过一种思路叫RAII 这里的RTTI全称为Run-time Type identification即运行时类型识别 C通过下面几种方式来支持RTTI typeiddecltypedyanmic_cast 这个概念只需要了解即可
http://www.hkea.cn/news/14316067/

相关文章:

  • app网站开发著名的网络营销案例
  • 西安建设网站的公司哪家好凡科送审平台学生不能登录
  • 美食网站模板下载做导航网站用什么建站程序
  • 怎样建设与维护自己的平台网站dw php网站建设视频教程
  • 网站 猜你喜欢 怎么做哪个做网站公司
  • 微网站的搭建流程网站建设常用的6大布局加代码
  • 滨州网站开发公司怎么建一个网站卖东西
  • 网站开发费属于什么费用二次元博客源码wordpress
  • 代理 网站前置审批西部建设网站
  • 网站开发集成软件建设银行手机登陆网站
  • 舞台灯光网站建设公司个人网站页面设计素材
  • 做网站是怎么做的网站建设wordpress
  • 有谁想做网站 优帮云个人建站教程
  • 怎么制作网站vi页面店铺管理app
  • 做的好的响应式网站有哪些中企动力 网站建设 收费
  • 在工商网站上怎么做电话的变更音乐网站怎么做精准关键词
  • 如皋企业网站建设用电脑记事本做网站
  • 重庆网站建设平台免费学校网站建设目的
  • 自做业务网站上海比较好的设计院
  • 常州市建设局网站网页软件下载
  • 太原网站建设解决方案如何做logo标志
  • 建站宝盒后台茂名放心营销网站开发
  • 百度的网站收录怎么做wordpress 高级自定义
  • 企业网站建设基本思路自定义标签wordpress
  • 长沙模板建站哪家好网站建设开发公司报价
  • 南宁优化网站收费世界最受欢迎的免费架站平台
  • 电商网站运营建设的目标网站 实例
  • 无代码做网站网站做收付款接口
  • 专业网站建设知识遵义公司网站制作哪家好
  • 做个公司网站石油化工建设工程网站