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)却还很陌生.对于我来说,在写代码的时候能用得上复制构造函数的机会并不多,不过这并不说明复制构造函数没什 ...
最新文章
- django搭建示例-ubantu环境
- 进度条三方库tdqm trange用法
- leetcode - Container With Most Water
- python 删除文件、目录_python实现删除文件与目录的方法
- 霍纳法树形流图中处理机p个数_2009系统结构试卷答案
- java接口构建英雄属性_Python接口类的多继承以及抽象类的单继承
- 睡眠音频分割及识别问题(四)--YAMNet简介
- mysql查询中怎样使用索引_MySQL如何使用索引
- with pdo mysql_如何在PHP下开启PDO MySQL的扩展
- STM32 USART通信
- uva11609(组合数学,快速幂)
- html5画图论文结束语,基于HTML5 Canvas的画图板的设计与实现.doc
- 【引用】URLDownloadToFile_VB下载文件!
- AIX双机调整DB2配置
- app安全渗透测试详细方法流程
- 服务器流量超载怎么修复,网站服务器超出流量怎么办
- 程序猿最喜欢说的30句话!看看你有没有说过
- 智能卡 PSAM 卡片文件结构
- 湖南计算机专修学院20年同学聚会,20年后的一次同学聚会
- php 微信公众号客服,微信公众平台开发 多客服
热门文章
- HMI使用自定义控件流程
- UE4 连接自定义服务器
- ARM中断分析之二:裸机下面的中断处理
- Vxworks系统学习之一----任务
- python机器人算法_DBscan算法及其Python实现
- 狼人杀服务器紧急维护中,狼人杀最可怕的武器是那张嘴?禁言长老:你已被管理员禁言一天!...
- 神经网络与深度学习——TensorFlow2.0实战(笔记)(四)(python字典和集合)
- 【转】C++指针详解!!!!
- 【转】2.1.1 购买阿里云服务器(Ubuntu系统)
- ASP.NET中共有哪几种类型的控件?其中,HTML控件、HTML服务器控件和WEB服务器控件之间有什么区别