关于拷贝构造函数的3个问题

简介: 关于拷贝构造函数的3个问题

问题1:拷贝构造函数与赋值运算的区别?

拷贝构造完成的是 初始化 的工作,即只能进行一次。赋值运算可以进行多次。

拷贝构造是创造一个自定义类型的对象,赋值运算是对已经存在的对象进行赋值。

问题2:拷贝构造函数的形参为什么是引用?

拷贝构造函数存在于哪里?存在于类中。是类中六大默认成员函数之一。

以Date类为例,其拷贝构造函数写作

现在我们假设,形参是 const Date d。形参的类型是自定义类型Date。与内置类型不同的是,内置类型的初始化拷贝可以按字节赋值拷贝,而自定义类型初始化拷贝的规则我们是不知道的,因此需要调用它的拷贝构造函数。由于自定义类型对象的赋值拷贝(指初始化的时候)要调用其拷贝构造函数,所以拷贝构造函数的形参应该用引用。

问题3:类中生成的 默认 拷贝构造函数是怎样的

按字节序的浅拷贝。

相关文章
|
Linux 网络安全
Linux 服务器的21/22端口被禁止,如何解决?
22端口作为远程登录服务器的知名端口,如果22端口暴露在互联网必然会引起攻击。
1392 0
|
数据安全/隐私保护 C++ 计算机视觉
Qt(C++)开发一款图片防盗用水印制作小工具
文本水印是一种常用的防盗用手段,可以将文本信息嵌入到图片、视频等文件中,用于识别和证明文件的版权归属。在数字化和网络化的时代,大量的原创作品容易被不法分子盗用或侵犯版权,因此加入文本水印成为了保护原创作品和维护知识产权的必要手段。 通常情况下,文本水印可以包含版权声明、制作者姓名、日期、网址等信息,以帮助识别文件的来源和版权归属。同时,为了增强防盗用效果,文本水印通常会采用字体、颜色、角度等多种组合方式,使得水印难以被删除或篡改,有效地降低了盗用意愿和风险。 开发人员可以使用图像处理技术和编程语言实现文本水印的功能,例如使用Qt的QPainter类进行文本绘制操作,将文本信息嵌入到图片中,
484 1
Qt(C++)开发一款图片防盗用水印制作小工具
ERROR: No matching distribution found for gradio>=3.23
该博客文章提供了解决使用pip安装gradio版本3.23时出现的"No matching distribution found"错误的步骤,包括从官网下载相应的whl文件并手动安装。
ERROR: No matching distribution found for gradio>=3.23
|
传感器 安全 编译器
【C++断言机制】深入理解C/C++ 中静态断言static_assert与断言 assert
【C++断言机制】深入理解C/C++ 中静态断言static_assert与断言 assert
477 0
|
Java API C++
【C++ 与Qt 线程】C++ std::thread 与Qt qthread多线程混合编程
【C++ 与Qt 线程】C++ std::thread 与Qt qthread多线程混合编程
976 1
|
关系型数据库 MySQL Linux
Docker安装mysql详细教程, mysqld: Can‘t read dir of ‘/etc/mysql/conf.d/‘(报错已解决)
Docker安装mysql详细教程, mysqld: Can't read dir of '/etc/mysql/conf.d/' (Errcode: 2 - No such file or directory) 已解决
|
网络协议 Linux 网络安全
CentOS7增加或修改SSH端口号
CentOS7增加或修改SSH端口号
837 1