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

正规设计兼职网站有哪些北京做网站哪个好

正规设计兼职网站有哪些,北京做网站哪个好,西安百度竞价外包,网站怎么看哪个公司网站建设本文简介#xff1a;介绍C中类型转换的方式 类型转换 C语言中的类型转换为什么C需要四种类型转换C强制类型转换static_castreinterpret_castconst_castdynamic_cast RTTI#xff08;了解#xff09;总结 C语言中的类型转换 在C语言中#xff0c;如果赋值运算符左右两侧类型…本文简介介绍C中类型转换的方式 类型转换 C语言中的类型转换为什么C需要四种类型转换C强制类型转换static_castreinterpret_castconst_castdynamic_cast RTTI了解总结 C语言中的类型转换 在C语言中如果赋值运算符左右两侧类型不同或者形参与实参类型不匹配或者返回值类型与接收返回值类型不一致时就需要发生类型转化C语言中总共有两种形式的类型转换隐式类型转换和显式类型转换。 隐式类型转化编译器在编译阶段自动进行能转就转不能转就编译失败显式类型转化需要用户自己处理 隐式类型转换 int i 1;double d i;显式类型转换 int*p i;int address (int)p; 而C是C语言的超集 自然也能做到上面的两种类型转化 但是上面的两种类型转换有一种缺点 转换的可视性比较差所有的转换形式都是以一种相同形式书写难以跟踪错误的转换 为什么C需要四种类型转换 C风格的转换格式很简单但是有不少缺点的 隐式类型转化有些情况下可能会出问题比如数据精度丢失显式类型转换将所有情况混合在一起代码不够清晰 比如说下面这段代码 int end 3; size_t pos 0; while (1) { if (end pos){end--;} }上面的这段代码会进入死循环 因为在进行比较运算符运算的时候end发生了隐式类型转化 变成了size_t 类型 从此以后不会出现小于0的数了 因此C提出了自己的类型转化风格注意因为C要兼容C语言所以C中还可以使用C语言的转化风格。 C强制类型转换 标准C为了加强类型转换的可视性引入了四种命名的强制类型转换操作符 static_cast、reinterpret_cast、const_cast、dynamic_cast static_cast static_cast用于非多态类型的转换静态转换编译器隐式执行的任何类型转换都可用 static_cast但它不能用于两个不相关的类型进行转换 我们可以简单理解为是隐式类型转换 代码使用如下 int main() {double d 12.34;int a static_castint(d);coutaendl;return 0; }reinterpret_cast reinterpret_cast操作符通常为操作数的位模式提供较低层次的重新解释用于将一种类型转换为另一种不同的类型 我们可以简单理解为类型不相关的数据就可以使用 代码表示如下 int main() {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);return 0; }const_cast const_cast最常用的用途就是删除变量的const属性 方便赋值 我们可以写出以下代码 #include iostream using namespace std; int main() { const int a 2; int* p const_castint*(a); *p 3; cout a endl; cout *p endl; return 0; } 此时我们就可以通过p地址的解引用来改变该地址的值 那么大家可以猜猜看最后的结果是什么呢 答案是2 3 是不是出乎大家的意料了 这是因为g编译器认为 a是一个常量 我们不会去轻易修改它 所以说将a的值放在了寄存器当中 读取a的数据也会从寄存器中读 所以说尽管a这个变量的地址中的值被修改成3了 我们读取仍然会是2 那么有没有什么办法可以优化呢 当然有 我们只需要让这个变量不出现在寄存器当中就可以了 我们可以使用volatile关键字修饰a变量 这样子a变量就不会出现在寄存器当中了 代码和演示结果如下 volatile const int a 2; dynamic_cast 我们在之前的内容中学习过 大部分的类型转换都是经过临时变量的 就比如说下面的代码 int a 0; double b a;这中间并不是直接将a赋值给b 而是会经历一个临时变量 这也就是为什么我们double类型的引用并不能直接引用int类型的数据 因为我们引用的实际上是一个临时变量 而临时变量具有常属性 必要要用const修饰才行 否则会产生一个权限扩大的问题 dynamic_cast用于将一个父类对象的指针/引用转换为子类对象的指针或引用(动态转换) 向上转型子类对象指针/引用-父类指针/引用(不需要转换赋值兼容规则) 向下转型父类对象指针/引用-子类指针/引用(用dynamic_cast转型是安全的) 在C中 子类对象的指针或者引用给父类指针或者引用的时候是不会经过类型转换的 因为这实际上就是一个切片 这是C规则所允许的 关于切片在我的继承博客那一章有讲解 而向下转型 即父类对象指针/引用-子类指针/引用则是要经过类型转换的 首先我们要理解第一个点 父类的对象不管怎么样是绝对不被允许转化为子类对象的 只有指针和引用可以转 其实父类对象的指针有可能是指向父类的 也有可能是指向子类的 拿下面的两个类来举例说 class A { public:virtual void P(){;} private:int _a 1; };class B : public A { private:int _b 2; };父类是A 子类是B void Test(A* pa) {B* pb1 dynamic_castB*(pa);cout pb1 endl; }int main() {A* pa new A;B* pb new B;Test(pa);Test(pb);return 0; }我们定义了一个父类指针 一个子类指针 并且将他们都传入到一个Test函数中去 子类的指针会被转化为父类的指针 但是我们需要知道的一点是 父类的范围一定是小于等于子类的范围的 也就是说 父类的指针如果它本来是就是子类的 那么转化为子类指针之后正常的操作没有问题 但是如果说 父类指针本来就是指向父类的 那么转化为子类指针之后就有可能会出现越界问题 所以说为了解决指针越界问题 我们的dynamic_cast函数会先进行判断 如果该父类指针本来是指向子类的 那么可以成功转换 反之则返回一个空指针 运行结果如下 注意 dynamic_cast只能用于父类含有虚函数的类dynamic_cast会先检查是否能转换成功能成功则转换不能则返回0dynamic_cast相比于原来的强制类型转换是一种更加安全的转换方式 所以说dynamic_cast最大作用还是用来区分指针到底是指向父类还是指向子类 如果是指向父类的就返回空 如果是指向子类的就可以转 面试题 四种类型转换分别是什么 static_cast reinterpret_cast const_cast dynamic_cast 他们的应用场景分别是什么 static_cast 隐式类型转换reinterpret_cast 强制类型转换const_cast const修饰取消dynamic_cast 父类指针/引用转子类指针/引用 RTTI了解 RTTIRun-time Type identification的简称即运行时类型识别。 C通过以下方式来支持RTTI typeid运算符 获取变量类型dynamic_cast运算符 获取父类指针指向父类还是子类decltype 推导函数类型 总结
http://www.hkea.cn/news/14474730/

相关文章:

  • 网站页面风格分类那个网站都有做莱的图片
  • 黑糖不苦还做网站么软文文章
  • 贵州住房与城乡建设部网站动漫短视频怎么制作教程
  • 天津专门做企业网站公司php网站建设制作方案
  • 顺德建网站成都住建局官网住建扬尘监测
  • 广州网站设计首选柚米电子商务网站建设考试简答题
  • 防止做网站的人修改数值西丽网站建设
  • 制作图片的免费网站用cms建设网站课程宅门
  • 东莞市公司网站建设平台seo课
  • 域名信息备案管理系统查询seo 网站结构优化
  • 东莞网站代理平台推荐
  • 哪些属于网站评论建设部特种作业证网站查询
  • seo站长网网站建设的功能需求文档
  • 网站建设与管理好找工作吗网络架构oss
  • 有公司可以做网站升级ipv6拼多多流量推广神器
  • 嘉兴简单建站seo外链工具软件
  • 南京网络建站模板网站开发方法
  • 网站建设经典教材亚马逊雨林在地图上的位置
  • 如何自己建营销网站wordpress4.9.8中文版
  • 电商运营网站微信开放平台认证费用
  • 网站专栏建设情况公司做网站需要什么条件
  • 怎么查询网站的空间商加强图书馆网站建设
  • 如何借助织梦制作一个简单的网站北京有名的广告公司
  • 哪些网站可以做商家网站建设技术方案
  • 网站做301重定向的作用网站免费正能量不下载
  • 网站服务器租wordpress双语导航
  • 免费的网站生成app咪呜瀑布流WordPress模板
  • 做301重定向会影响网站权重吗济南工装定制公司
  • 个人不能建设论坛网站怎么办中国移动社区app下载
  • 网站程序 wap pc 同步广州网站定制开发设计