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

响应式网站无法做联盟广告网站建设课后心得

响应式网站无法做联盟广告,网站建设课后心得,伊利网站建设评价,做的网站必须放在idc机房吗C中拷贝构造和赋值重载的注意事项以及编译器的优化处理前言1. 拷贝构造和赋值重载的易混淆点和注意事项1.1 易混淆点1.2 注意事项2.编译器对拷贝构造和赋值重载的优化处理前言 本文可以帮助你对下面: (1)何时调用拷贝构造何时调用赋值重载 &a…

C++中拷贝构造和赋值重载的注意事项以及编译器的优化处理

    • 前言
    • 1. 拷贝构造和赋值重载的易混淆点和注意事项
      • 1.1 易混淆点
      • 1.2 注意事项
    • 2.编译器对拷贝构造和赋值重载的优化处理

前言

本文可以帮助你对下面:
(1)何时调用拷贝构造何时调用赋值重载
(2)在拷贝构造函数和赋值重载函数的参数加const的意义
(3)自定义类型的隐式类型转换
(4)编译器对自定义类型隐式类型转换的优化
(5)自定义类型引用常量的意义
方面有更加深刻的理解

1. 拷贝构造和赋值重载的易混淆点和注意事项

1.1 易混淆点

在这里插入图片描述
上图代码中的Date d2(d1);这句话大家可以很快就判断出是拷贝构造。

在这里插入图片描述

上图代码中的Date d3 = d1 + 15;拷贝构造Date d2 = d1 + 10;赋值重载

原因如下:

(1)由于d3是为初始化的Date对象并用d1+15来初始化,即使使用等号来初始化,编译器还是会识别它为拷贝构造,相当于把Date d3 = d1 + 15;转化为Date d3(d1);因此是拷贝构造
(2)然而d2是已经存在的对象,并用d1+10来赋值因此是赋值重载


1.2 注意事项

拷贝构造和赋值重载函数的参数,最好加const,否则以上面的例子为例,可能会出错:
以代码Date d3 = d1 + 15;为例:

在这里插入图片描述

如上图首先先调用运算符重载operator+,由于retoperator+里的局部变量,出了作用域就会自动删除,因此会先将ret拷贝到临时对象后才返回值(调用了拷贝构造),而临时对象为右值,具有常性(相当于用const修饰),这个临时对象又作为拷贝构造函数的参数,由于参数的类型是const Date,而拷贝构造函数需要接收Date&类型的参数,存在引用的权限放大的问题,因此编译器会报错!
同理,Date d2 = d1 + 10;也会报错。

所以我们习惯在拷贝构造和赋值重载函数的参数中为其添加const进行修饰,有两个好处:
(1)防止误写入
(2)避免权限放大问题
在这里插入图片描述


2.编译器对拷贝构造和赋值重载的优化处理

在这里插入图片描述

观察上面的两句话,第一句Date d1(2022);是大家熟知的构造函数
让人疑惑的是第二句Date d2(2022);中的Date类型的d2为什么能用int类型的2022来赋值呢?
其实这里是隐式类型的转化,在类的构造函数没有被explicit修饰的时候,编译器允许这种转化。
也就是把2022这个整形变量隐式转化为Date类型的变量。隐式类型转化的步骤如下:
(1)传一个参数调用构造函数来初始化一个const Date类型的临时对象
(2)调用Date的拷贝构造函数,将临时对象作为拷贝构造函数的参数,从而初始化d2.
在这里插入图片描述
也就是说,Date d2 = 2022;这个语句会先调用一次构造函数,再调用一次拷贝构造函数,但是大胆点的编译器(如VS2019)会对其步骤进行优化,对其进行合二为一。
也就是直接将2022作为d2的构造函数的参数对d2进行初始化。
在这里插入图片描述


值得一提的是,在对int类型的常量2022进行引用操作的时候,编译器就会老老实实按照创建临时对象并调用其构造函数进行初始化,类型为const Date。再对其进行引用。
因此Date& d2 = 2022;的写法是错误的,存在权限放大
正确的写法是const Date& = 2022;
在这里插入图片描述
实际意义可以体现在String类:
下图中的Func("hello");这句话就是用"hello"初始化了一个const String类的对象,因此用string来引用的时候会报错,要想用"hello"来调用Func函数的话,就必须加上const。
加上const前,编译器报错:
在这里插入图片描述
加上const后,可以正常调用:
在这里插入图片描述

http://www.yayakq.cn/news/956294/

相关文章:

  • 教育行业展示网站模板如何优化搜索引擎的准确性
  • 淘宝 网站建设教程视频高端网站设计报价表
  • 做网站都是怎么收费如何利用NAS做网站
  • 做韩国护的网站wordpress seo链接
  • 云南做网站的公司有哪些世界500强企业查询入口
  • 郴州公司网站建设网站备案系统登陆不上
  • 毕节城乡建设局网站查询手机网站开发 手机模拟器
  • dw 怎么做钓鱼网站图们网络推广
  • 宁波企业建站程序色多多导入百媚导航
  • c 开发手机网站开发需要多少钱
  • 深圳网站建设ppchsj怎么选择邯郸做网站
  • 做影视网站版权问题太原网站制作企业
  • 网站备案网站名称怎么填wordpress主题收费推荐
  • 网站手机自适应wp用户前端化专业版wordpress插件[中英双语]
  • 内网网站 建设目标网站数据库备份还原
  • 怎样做网站404吉林网站制作选择乐云seo
  • 中小型网站设计哪家好鞋子的网站策划方案模板
  • wp网站模板安装百度搜索榜
  • 一起做彩票网站的人wordpress 编辑 插件下载
  • 网站建设项目采购合同浙江省住房与城乡建设厅网站
  • 关于门户网站建设工作情况汇报h5页面制作代码
  • 观澜专业做网站公司商城网站建设经验
  • 西安专业网站建设公司哪家好网站生成系统源码
  • 做暖暖视频网站观看北京网站建设+知乎
  • 博达站群网站建设教程网站空间 按流量计费
  • 怎么做淘宝优惠卷网站网站可以做软件检测吗
  • 织梦网站建设过程微网站难做么
  • 下做图软件在哪个网站下载哈尔滨关键词优化效果
  • 网站建设移交内容湘西网站建设吧
  • phpstudy2016快速搭建网站建设银行手机银行官方网站