关于拷贝构造函数的一些摘要

2023-11-16

 拷贝构造函数,经常被称作X(X&),是一种特殊的构造函数,他由编译器调用来完成一些基于同一类的其他对象的构件及初始化。它的唯一的一个参数(对象的引用)是不可变的(因为是const型的)。这个函数经常用在函数调用期间于用户定义类型的值传递及返回。拷贝构造函数要调用基类的拷贝构造函数和成员函数。如果可以的话,它将用常量方式调用,另外,也可以用非常量方式调用。
  在C++中,下面三种对象需要拷贝的情况。因此,拷贝构造函数将会被调用。
  1). 一个对象以值传递的方式传入函数体
  2). 一个对象以值传递的方式从函数返回
  3). 一个对象需要通过另外一个对象进行初始化
  以上的情况需要拷贝构造函数的调用。如果在前两种情况不使用拷贝构造函数的时候,就会导致一个指针指向已经被删除的内存空间。对于第三种情况来说,初始化和赋值的不同含义是构造函数调用的原因。事实上,拷贝构造函数是由普通构造函数和赋值操作赋共同实现的。描述拷贝构造函数和赋值运算符的异同的参考资料有很多。
  拷贝构造函数不可以改变它所引用的对象,其原因如下:当一个对象以传递值的方式传一个函数的时候,拷贝构造函数自动的被调用来生成函数中的对象。如果一个对象是被传入自己的拷贝构造函数,它的拷贝构造函数将会被调用来拷贝这个对象这样复制才可以传入它自己的拷贝构造函数,这会导致无限循环。
  除了当对象传入函数的时候被隐式调用以外,拷贝构造函数在对象被函数返回的时候也同样的被调用。换句话说,你从函数返回得到的只是对象的一份拷贝。但是同样的,拷贝构造函数被正确的调用了,你不必担心。
  如果在类中没有显式的声明一个拷贝构造函数,那么,编译器会私下里为你制定一个函数来进行对象之间的位拷贝(bitw

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关于拷贝构造函数的一些摘要 的相关文章

随机推荐

  • 日本“性爱机器人”上线1小时被抢空

    来源 正商参阅 局座召忠 李开复 蒋东平网络等 日本 妻子 机器人被哄抢 不要房车不要彩礼 日本研发出一款 美女机器人 将其命名为 妻子 光看她的外形 你能识别出她其实只是一个机器人吗 60分钟售出万台 第一点就是人们所关注的价格方面 在日
  • node.js 环境安装(windows)

    准备需要安装的电脑 下载node js的安装包 地址 http nodejs cn download 下载的安装包双击打开 依次按照下图指示执行 下图点击接受 后下一步 下图 根据实际情况选择安装位置 如果记不住建议选择默认位置 直接点击n
  • 使用Python+VTK获取3D体渲染模型任意角度切面(更新中)

    目录 效果图 实现目标 安装依赖 Code 其他需求 效果图 废话少说先上效果图 右边红色的plane是想要获取3D模型对应切面的平面 左边是这个切面的切片的图像 实现目标 定义一个任意角度的切面 都能把体绘制模型的这个切面的图像获取 并且
  • LADRC的离散化实现(Mark一下,重新开始)

    LADRC的离散化实现 一 感慨 上一次写博客是两年前了 现在已经过了那么久 期间经历了许多事 有好有坏 不多大多时候是丧的 到了现在 终究让我相通了一件事情 深刻理解并追求自己想要做的事情是会幸福的 通过读了许多书 在b站上看了许多视频
  • 正则匹配emoji字符

    寻找emoji的编码范围 在这个网站中可以查看所有的emoji unicode Emoji Unicode table 用js代码找出这个页面所有emoji unicode 的范围 let list document querySelect
  • PostgreSql 数据库的访问权限配置

    本文主要简单的描述以下几个 在使用PostgreSql数据库时常见的 有关访问权限以及远程连接数据库的问题 及其解决办法 以下所述问题及解决办法都在postgresql8 0及windows 2003server的范围内 1 在本地使用po
  • 漫谈拥塞控制: pacing rate

    我基于综合效能结合排队论解释过 pacing 发送的益处 为什么 pacing 但该解释仍没有揭露 pacing 的本质 pacing 的本质是出让时间槽 出让时间槽无法降低整体等待时延 但可降低甚至消除抖动 即在任意短的采样周期内保持等待
  • CTF MISC解题思路BUUCTF MISC1-8刷题

    1 签题 扫描二维码到得flag 2 金 胖 题目为gif动画 用wps打开每帧保存成图片 flag就在其中几张图片 3 二维码 下载题目解压得到一个二维码图片 扫描没发现flag 使用010editor打开图片发现文件头为89 50 4E
  • [C语言]offseto宏的认识与模拟实现

    目录 1 offseto的认识 2 offseto的模拟实现 1 offseto的认识 在结构体中 因为内存对齐的存在我们需要进行计算才能知道结构体成员的地址对于结构体首地址的偏移量为多少 今天认识的offseto就是将结构体中成员地址对于
  • Day 13 - 正则表达式习题

    利用正则表达式完成下面的操作 1 用户名匹配 要求 1 用户名只能包含数字 字母 下划线 2 不能以数字开头 3 度在 6 到 16 位范围内 re username re compile r a zA Z w 5 15 print re
  • 2-3 处理缺失数据

    2 3 处理缺失数据 与本节相关的视频课程 处理缺失数据 检查缺失数据 基础知识 def foo pass f foo print f None type f NoneType None 2 TypeError unsupported op
  • sql月度汇总_【转】SQL语句统计每天、每月、每年的数据

    原文 https www cnblogs com fooo p 3435687 html sql语句统计每天 每月 每年的数据 1 每年 select year ordertime 年 sum total 销售合计 from 订单表 gro
  • C/C++面向过程与面向对象的区别

    C 是面向对象的 object oriented programming OOP 强调对象 由对象实施动作 C是面向过程的 procedure oriented programming POP 强调执行的过程 总结起来就是 面向对象是首先抽
  • 给mp3播放器增加音乐波形显示功能

    给mp3播放器增加音乐波形显示功能 2008 04 02 16 18 18 分类 应用编程 标签 字号大中小 订阅 用过winamp的人都知道 winamp有一个音乐波形显示功能 当播放音乐的时候 有一些音乐波形跟着上下跳动 翩翩起舞 又好
  • 运动控制初始化

    1 设置控制器的名称 类型 2 加载控制器的dll 3 初始化X 输入 Y 输出 轴映射 4 设置每个轴的回零参数 5 设置每个轴的预备位 起点位 6 配置各个轴的限位信号 包括报警 复位 正负限位 原点 Ready信号 7 配置各个轴的运
  • js四舍五入

    1 Math round方法 Math round 方法可把一个数字舍入为最接近的整数 例如 Math round x 则是将x取其最接近的整数 简单例子 var num Math round 568 58 console log num
  • 链路追踪工具之Zipkin

    Zipkin是一个分布式跟踪系统 Zipkin的设计是基于谷歌的Google Dapper论文 它可以帮助收集时间数据 在microservice架构下 通过链路追踪 可以便捷的分析服务调用延迟问题 每个应用程序向Zipkin server
  • JavaScript——每隔1秒依次输出一个数字,用for循环完成

    当我看到这个题目时 心理想这还不简单 不就是for循环里加个定时器么 for let i 1 i lt 10 i setTimeout function console log i 1000 可是事与愿违 这家伙的效果是等了一秒直接给我一下
  • code-server centos7开机自启命令设置

    首先设置chmod x etc rc d rc local 在该文件内写入以下代码 cd usr codeserver code server 4 0 1 linux amd64 code server port 5578 host 0 0
  • 关于拷贝构造函数的一些摘要

    拷贝构造函数 经常被称作X X 是一种特殊的构造函数 他由编译器调用来完成一些基于同一类的其他对象的构件及初始化 它的唯一的一个参数 对象的引用 是不可变的 因为是const型的 这个函数经常用在函数调用期间于用户定义类型的值传递及返回 拷