C++复制构造函数中的对象形参只能是引用的形式

这是一个简单的复制构造函数的应用:

#include <bits/stdc++.h>
using namespace std;class A {
public:A() {cout << "创建对象(默认构造函数)\n";}A(A & a) { // 最好是:const A & acout << "创建对象(复制构造函数)\n";}
};int main() {A a1;A a2(a1);return 0;
}

很多小伙伴刚学的时候都会疑问为什么复制构造函数的形参只能是引用形式如:A & a,而不能是按值传递如:A a
原因:
如果使用按值传递,以上边代码为例,在 a2 调用复制构造函数,复制一份 a1 作为形参的时候,又需要调用一次复制构造函数。我们能够发现,这个过程陷入了死循环:我们希望复制一个对象,但又在复制构造函数中先复制一份给形参。这个过程显然是不能结束的,所以不能使用按值传递。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/163486.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言打字游戏案例

#include <stdio.h> #include <stdlib.h> #include <time.h>int main() {// 设置随机数种子srand((unsigned int)time(NULL));char c[201] { 0 }; // 加上一个 \0结束符位置// 产生随机数for (int i 0; i < 20; i){c[i] rand() % 26 a;}printf("…

Flutter和Android的混合跳转

1、项目特点 项目是Flutter作为主工程&#xff0c;将Android module或SDK作为模块嵌入到flutter中&#xff0c;与通常所熟悉的Android&#xff08;或iOS&#xff09;工程将flutter 为module嵌入到工程中有所不同。 2、业务需求 任意界面间的跳转&#xff0c;不管是flutter页…

工作中死循环害死人

背景&#xff1a;研发的一段代码&#xff0c;循环一直没有跳出&#xff0c;导致其他依赖逻辑有问题&#xff0c;生产事故导致9万左右数据不正常。 这里while&#xff08;true&#xff09;真的不要轻易用 &#xff0c;后来研发改动限制mysql的id切分步长&#xff0c;控制不会有数…

去大连发展还是去苏州

公司要搬到苏州&#xff0c;你是跟随公司去苏州发展&#xff0c;还是留在大连另寻出路&#xff1f;

【RtpRtcp】1: webrtc m79:audio的ChannelReceive 创建并使用

m79中,RtpRtcp::Create 的调用很少 不知道谁负责创建ChannelReceiveclass ChannelReceive : public ChannelReceiveInterface,public MediaTransportAudioSinkInterface {接收编码后的音频帧:接收rtcp包:

linux端无法magic上网,该怎么处理

可以打开网址&#xff1a;登录 — iKuuu VPN 不用重新安装&#xff0c;再次配置一下即可。

深入了解前馈网络、CNN、RNN 和 Hugging Face 的 Transformer 技术!

一、说明 本篇在此对自然语言模型做一个简短总结&#xff0c;从CNN\RNN\变形金刚&#xff0c;和抱脸的变形金刚库说起。 二、基本前馈神经网络&#xff1a; 让我们分解一个基本的前馈神经网络&#xff0c;也称为多层感知器&#xff08;MLP&#xff09;。此代码示例将&#xff1…

Web应用系统的小安全漏洞及相应的攻击方式

1 写作目的 本文讲述一个简单的利用WebAPI来进行一次基本没有破坏力的“黑客”行为。 主要目的如下&#xff1a; 了解什么叫安全漏洞知道什么是api了解一些获取api的工具通过对API的认识了解白盒接口测试基本概念和技术 免责声明&#xff1a; 本文主要是以学习交流为目的…

C++ ,VCPKG那些事

玩过C都知道&#xff0c;熟悉三方库对开发工作的重要性&#xff0c;寻找同步更新、稳定、权威的库源更是每一位开发者经常要做的功课&#xff0c;诸如赫赫有名的boost,google SDK、腾迅sdk、阿里库&#xff0c;vcpkg等等&#xff0c;这里要说的就是VCPKG&#xff0c;以下是记录…

盘点63个Python登录第三方源码Python爱好者不容错过

盘点63个Python登录第三方源码Python爱好者不容错过 学习知识费力气&#xff0c;收集整理更不易。 知识付费甚欢喜&#xff0c;为咱码农谋福利。 链接&#xff1a;https://pan.baidu.com/s/1l7oooH9YovHmWzQ_58FRdg?pwd8888 提取码&#xff1a;8888 项目名称 A headless…

11-23 SSM4

Ajax 同步请求 &#xff1a;全局刷新的方式 -> synchronous请求 客户端发一个请求&#xff0c;服务器响应之后你客户端才能继续后续操作&#xff0c;请求二响应完之后才能发送后续的请求&#xff0c;依次类推 有点&#xff1a;服务器负载较小&#xff0c;但是由于服务器相应…

Vue3+Ts实现聊天机器人(chatBot-附代码)

一&#xff1a;项目介绍 本次实验主要涉及到的技术是 Vue3 Ts&#xff0c;当然其中也有部分是 Vue2 格式的代码以及 json 和 CSS 布局等。本来是想仿照 文心一言 来开发的一个聊天机器人案例。结果由于时间不足&#xff0c;可能只是做出来了一个半成品。不过核心功能是有的。由…

浅谈安科瑞智能照明系统在马来西亚国家石油公司项目的应用

摘要&#xff1a;随着社会经济的发展及网络技术、通信技术的提高&#xff0c;人们对照明设计提出了新的要求&#xff0c;它不仅要控制照明光源的发光时间、 亮度&#xff0c;而且与其它系统来配合不同的应用场合做出相应的灯光场景。本文介绍了马亚西亚石油公司智能照明项目的应…

tp8 使用rabbitMQ(2)工作队列

代码的参数说明在 第一小节的代码中&#xff0c;如果需要可移步到第一节中查看 工作队列 工作队列&#xff08;又称&#xff1a;任务队列——Task Queues&#xff09;是为了避免等待一些占用大量资源、时间的操作。当我们把任务&#xff08;Task&#xff09;当作消息发送到队列…

推荐一款png图片打包plist工具pngPackerGUI_V2.0

png图片打包plist工具&#xff0c;手把手教你使用pngPackerGUI_V2.0 此软件是在pngpacker_V1.1软件基础之后&#xff0c;开发的界面化操作软件&#xff0c;方便不太懂命令行的小白快捷上手使用。1.下载并解压缩软件&#xff0c;得到如下目录&#xff0c;双击打开 pngPackerGUI.…

《第一行代码:Android》第三版-2.4.3循环语句 for循环

本节主要讲for 循环&#xff0c;主要就是创建个区间&#xff0c;然后用for 来遍历。 /*** You can edit, run, and share this code.* play.kotlinlang.org*/fun main() {println("Hello, world!!!")for(i in 1..10)//表示 0 到10 但是包括10 &#xff0c;即数学上的…

使用paddleocr进行OCR文字识别

1 OCR介绍 OCR&#xff08;Optical Character Recognition&#xff09;即光学字符识别&#xff0c;是一种将不同类型的文档&#xff08;如扫描的纸质文件、PDF文件或图像文件中的文本&#xff09;转换成可编辑和可搜索的数据的技术。OCR技术能够识别和转换印刷或手写文字&…

Python接口自动化测试——如何搭建测试环境

前言 接口测试的方式有很多&#xff0c;比如可以用工具&#xff08;jmeter,postman&#xff09;之类&#xff0c;也可以自己写代码进行接口测试&#xff0c;工具的使用相对来说都比较简单&#xff0c;重点是要搞清楚项目接口的协议是什么&#xff0c;然后有针对性的进行选择&a…

NF是哪个国家品牌?韩国NF-耐福功放芯片介绍

NF是韩国一家专注于数字音频芯片领域公司旗下的数字功放IC品牌&#xff0c;2008年开始进入中国市场&#xff0c;ISweek工采网作为其代理商&#xff1b;在国内简称&#xff1a;韩国NF&#xff0c;又被称耐福、耐福NTP功放芯片&#xff1b;国内长虹、TCL、海信、小豹AI音箱、腾讯…

大数据-之LibrA数据库系统告警处理(ALM-37001 MPPDBServer实例Redo日志缺失)

告警解释 当DN主实例有未同步到DN备实例的xlog日志被删除时&#xff0c;产生该告警。 告警属性 告警ID 告警级别 可自动清除 37001 严重 是 告警参数 参数名称 参数含义 ServiceName 产生告警的服务名称 RoleName 产生告警的角色名称 HostName 产生告警的主机名…