C++:10---再议拷贝构造函数
一、概念
使用一个已经存在的对象,去构造(初始化)另一个对象
二、格式
参数加上const&,因为拷贝构造函数在几种情况下都会被隐式地使用,因此拷贝构造函数不应该是explict的
const:防止函数内部修改值
&:防止无限循环拷贝
类名(类名 const& 参数名)
{
函数体
}
三、拷贝构造函数的分类
浅拷贝:成员变量无动态内存(指针等)变量时,在拷贝构造函数内对成员变量只做简单的赋值,不做内存申请
深拷贝:成员变量有动态内存(指针等)变量时,在拷贝构造函数内对成员变量先进行内存申请,然后进行内容拷贝
默认拷贝构造:没有写拷贝构造时,系统默认给出(默认的为浅拷贝)
浅拷贝:
//此类情况使用浅拷贝 class Cperson { private: int a; public: Cperson(Cperson const& other);//拷贝构造 } Cperson::Cperson(Cperson const& other) { this->a=other.a; }
深拷贝:
C++:10---再议拷贝构造函数相关推荐
- 拷贝构造函数的调用以及浅拷贝与深拷贝的理解
今天一直在研究拷贝构造函数相关的东西,我这个大四老狗感觉又回到了大一学C++的时候.瞎捣鼓了一天,略微还是有些收获的,趁着脑子中的概念正热,把自己的心得赶紧整理出来分享给大家. 首先简 ...
- 【C++ 6.析构函数和拷贝构造函数】
C++ 6.析构函数和拷贝构造函数 1. 析构函数 a. 概念 b. 特性 1.析构函数是在类名称前面加上字符~. 2.无参数和返回值. 3.一个类有且只有一个析构函数. 4.对象生命周期结束时,C+ ...
- 利用类定义一个指针会调用默认构造函数吗_C++的拷贝构造函数
拷贝构造函数是一种特殊的构造函数,它在创建对象时,是使用同一类中之前创建的对象来初始化新创建的对象.拷贝构造函数通常用于: 通过使用另一个同类型的对象来初始化新创建的对象. 复制对象把它作为参数传递给 ...
- C++ 拷贝构造函数和赋值运算符
本文主要介绍了拷贝构造函数和赋值运算符的区别,以及在什么时候调用拷贝构造函数.什么情况下调用赋值运算符.最后,简单的分析了下深拷贝和浅拷贝的问题. 拷贝构造函数和赋值运算符 在默认情况下(用户没有定义 ...
- 【C++】类和对象——拷贝构造函数
文章目录 什么是拷贝构造函数 为什么拷贝构造要传引用 默认拷贝构造函数 浅拷贝和深拷贝 编译器可能的优化 自定义类型做函数返回值时传值返回 自定义类型做函数参数时传值调用 总结一下 什么是拷贝构造函数 ...
- 构造函数的调用场景--构造函数与拷贝构造函数、移动构造函数之辨
在Scott Meyers的著作<Effective C++>条款5中,明确指出要"了解C++默默编写并调用哪些函数".这里通过一个简短的C++代码,阐述哪些场景调用构 ...
- 构造函数与拷贝构造函数
拷贝构造函数和构造函数不能分开说,他们都是初始化对象的一种方法.但是我们这里用构造函数辅助说明拷贝构造函数,主要说说拷贝构造函数的声明,用途和使用注意事项. 众所周知,构造函数是一个初始化类对象的函数 ...
- 【10分】H. 身份证号码升位(拷贝构造函数)
题目描述 class CDate { private: int year, month, day; public: CDate(int,int,int); bool check(); //检验日期是否 ...
- 复制构造函数(拷贝构造函数)
也许很多C++的初学者都知道什么是构造函数,但是对复制构造函数(copy constructor)却还很陌生.对于我来说,在写代码的时候能用得上复制构造函数的机会并不多,不过这并不说明复制构造函数没什 ...
最新文章
- ASP.NET虚拟主机的重大安全隐患
- 编程之美2.5 寻找最大的K个数
- 访谈:摩尔定律后时代,看13位行业专家如何看量子计算机的未来?
- SAP Fiori架构一览
- Apache Spark软件包,从XML到JSON
- 贪吃蛇python小白_面向 python 小白的贪吃蛇游戏
- 在 Google Earth 上看新闻
- Oracle“钱夹”的使用
- 如何正确在NSMutableDictionary中加入一个变量int
- 查看网页上次更新时间
- Java对接ChinaPay提现(公私钥方式)
- Nodejs http request 报错 “ETIMEDOUT“,“ECONNRESET“ , “ENOTFOUND“,“ECONNREFUSED”,“EHOSTUNREACH“
- 000webhost虚拟主机绑定自定义二级域名
- Fiddler - 使用 Fiddler 监控本地 HTTP 请求,谷歌浏览器提示“隐私设置错误”
- [总结]mac pro 提示“USB设备已停用”导致外接显示器黑屏
- MXL90614红外线测温传感器
- ZOJ 3380 Patchouli's Spell Cards 概率DP
- 入住阿里云MQTT物联网平台
- 入坑刷机?手机各大模式了解一下
- 给手机安装NES模拟器,游戏无限玩
热门文章
- opendrive匝道
- Asterisk 1.4.42将成绝唱
- uC/GUI 在Cortex-M3 内核上的移植
- 是否要运行此应用程序_使用Delve调试Go应用程序
- 使用promise解决回调地狱_「每日一题」Promise 是什么?
- JAVA中返回值为字母时_LeetCode#524通过删除字母匹配到字典里最长单词-java中CompareTo方法用法以及Comparator中Compare方法返回值...
- 【转】ABP源码分析四:Configuration
- 【转】人工智能-1.1.1 什么是神经网络
- 【转】WebSocket详解(一):初步认识WebSocket技术
- 【转】.Net中的异步编程总结