拷贝构造函数

概念:

拷贝构造函数:只有单个形参,该形参是对本类类型对象的引用(- -般常用const修饰),在用已存在的类类型对象创建新对象时由编译器自动调用。

特征:

1.拷贝构造函数是构造函数的-一个重载形式。

2.拷贝构造函数的参数只有一个且必须是类类型对象的引用,使用传值方式编译器直接报错,因为会引发无穷递归调用。
 

无穷递归调用:

因为c++规定了传参必须调用拷贝函数来完成,

于是就有了无穷递归调用:

 传参->拷贝构造->传参->拷贝构造->传参->拷贝构造->传参->拷贝构造   

为了跳过反复拷贝构造的循环,我们可以讲传值变成引用,加上&

 

注意:

若没有写拷贝函数,编译器会生成默认的拷贝构造函数,默认的拷贝构造函数对象按内存存储按字节序完成拷贝,这种拷贝叫做浅拷贝,或者值拷贝。

也能够达到预期的效果:

 但是如果栈拷贝,会导致栈的首元素int *_a 地址也相同,就不能达到预期的结果了

 

biter down
关注 关注
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
拷贝构造函数.rar
04-03
本资源通过代码实例详细介绍在C++程序中调用拷贝构造函数的三种情境,每行代码配有详细的注释,帮助学习者直观理解
C++拷贝构造函数的应用
01-20
C++拷贝构造函数的定义  有一个参数的类型是其类类型的构造函数是为拷贝构造函数。如下:  X::X( const X& x);  Y::Y( const Y& y, int =0 );  //可以是多参数形式,但其第二个即后继参数都有一个默认值 ...
PowerDesigner绘制类图时添加getter、setter、构造器(Constructor)及重写(Override)的方法
weixin_43158997的博客
04-18 3438
PowerDesigner绘制类图时添加构造器及override的方法 写作业时,要求绘制领域模型,其中涉及到了构造器以及重写方法的使用,几经研究后,找到了功能在哪里,随手记下来以备忘。 文章目录PowerDesigner绘制类图时添加构造器及override的方法一、构造器的添加(1)无参数构造器(2)含参数的构造器二、getter和setter方法的生成三、重写方法的快速生成 一、构造器的添加...
C++ 拷贝构造函数
NuYoaH502329的博客
07-29 1845
【分析】主函数中调用fn函数,第一步传参:将c对象传给对象s,c对象是实参,s对象是形参,在调用fn函数的时候才会给形参s开辟空间,也就是说把c传给s的时候才会给s开辟空间。c对象是已有的旧对象,s是新对象,从旧对象b到新对象s,用c去构造s,调用拷贝构造函数A(A),输出30。调用拷贝构造函数不是把c本身传给s,把c的值拷贝了一份给s去进行初始化。所以在调用test函数的时候,把tt这个局部变量先给了一个临时对象,局部变量tt是旧对象,临时对象是新对象,从局部对象tt到临时对象的时候调用了拷贝构造函数
c++拷贝构造函数
积累点滴,保持自我
06-28 7280
一. 什么是拷贝构造函数 首先对于普通类型的对象来说,它们之间的复制是很简单的,例如: int a = 100; int b = a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。 下面看一个类对象拷贝的简单例子。 #include <iostream> using namespace std; class CExample { privat...
C++拷贝构造函数
weixin_57604904的博客
10-08 1749
C++类与对象(二)(中)拷贝构造函数
C++——拷贝构造函数
weixin_59179454的博客
05-21 2万+
(用旧对象去构造新对象)拷贝构造函数,又称复制构造函数,是一种特殊的构造函数,它由编译器调用来完成一些基于同一类的其他对象的构造及初始化。值类型(不行,会产生递归);指针类型(能实现要求,但会出现歧义(感觉a的地址给b构造));引用类型(本类对象的const引用)。其唯一的形参必须是引用,但并不限制为const,一般普遍的会加上const限制。此函数经常用在函数调用时用户定义类型的值传递及返回。拷贝构造函数要调用基类的拷贝构造函数和成员函数。
【深入理解C++拷贝构造函数
脚踏实地,仰望星空
01-30 1446
1.拷贝构造函数 2.默认的拷贝操作 3.默认拷贝构造函数 4.何时调用拷贝构造函数
C++基础——拷贝构造函数
weixin_69283129的博客
11-10 1万+
C++类成员函数之拷贝构造函数
构造函数与拷贝构造函数
wufeifan_learner的博客
04-03 8592
拷贝构造函数和构造函数不能分开说,他们都是初始化对象的一种方法。但是我们这里用构造函数辅助说明拷贝构造函数,主要说说拷贝构造函数的声明,用途和使用注意事项。 众所周知,构造函数是一个初始化类对象的函数,即使不显示调用,编译器也会隐式调用构造函数初始化类对象。同样的,拷贝构造函数是一种特殊的构造函数,目的也是初始化类对象,同样在不声明的情况下也会隐式调用该函数。而隐式调用拷贝构造函数的时候,我们称...
C++拷贝构造函数详解
热门推荐
脚踏实地,仰望星空
02-23 46万+
一. 什么是拷贝构造函数 首先对于普通类型的对象来说,它们之间的复制是很简单的,例如: int a = 100; int b = a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。 下面看一个类对象拷贝的简单例子。 #include using namespace std; class CExample { private:  int a;
详解C++ 拷贝构造函数
01-19
拷贝构造函数是一种特殊的构造函数,它在创建对象时,是使用同一类中之前创建的对象来初始化新创建的对象。拷贝构造函数通常用于: 通过使用另一个同类型的对象来初始化新创建的对象。 复制对象把它作为参数传递给...
详解C++ 拷贝构造函数和赋值运算符
09-01
本文主要介绍了拷贝构造函数和赋值运算符的区别,以及在什么时候调用拷贝构造函数、什么情况下调用赋值运算符。最后,简单的分析了下深拷贝和浅拷贝的问题。有需要的朋友可以看下
C++拷贝构造函数的总结详解
01-20
1.什么是拷贝构造函数拷贝构造函数嘛,当然就是拷贝和构造了。(其实很多名字,只要静下心来想一想,就真的是顾名思义呀)拷贝又称复制,因此拷贝构造函数又称复制构造函数。百度百科上是这样说的:拷贝构造函数...
C++访问越界
最新发布
m0_73537205的博客
06-02 80
常见场景 访问数组元素越界 vector容器访问等 vector<int>;vec<2>; 字符串访问越界string str;str[2]; array数组访问越界 字符串处理,没有添加’\0’字符,导致访问字符串的时候越界了; 使用类型强转,让一个大类型(派生类)的指针指向一块小内存(基类对象)了,然后指针解引用,访问的内存就越界了! 总之本质就是访问超过了系统分配的内存!
C++:round函数用法
Solititude的博客
05-28 361
C++:round函数用法
c++ string模拟实现
2302_81705247的博客
06-01 562
模拟实现string类,里面包含四个成员变量,第一个是指向字符数组的指针,第二个变量是目前存放了多少个字符,第三个变量为这个字符数组的容量的大小。最后一个为静态成员变量npos。注意:一个修饰的成员变量可以在类里面初始化(三者缺一不可),而其他成员变量,要声明定义分离,类中声明,类外定义。char* _str;
精通C++ STL(二):string类的模拟实现
Russ_Leo的博客
05-27 836
string类各函数接口。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • C语言数组的打印 18367
  • 二叉树查找值为x的节点递归遍历 1737
  • Linux第一个小程序-进度条(c语言版) 1261
  • c++引用 1179
  • linux18:进程等待 1130

分类专栏

  • vue混合式开发学习 14篇
  • c语言入门 27篇

最新评论

  • linux下利用c++测试数据比对py代码的准确性

    CSDN-Ada助手: 推荐 CS入门 技能树:https://edu.csdn.net/skill/gml?utm_source=AI_act_gml

  • ^异或 操作符

    9ilk: 懂了谢谢

  • ^异或 操作符

    biter down: 第三个分解,原ababb 一>原 b

  • ^异或 操作符

    9ilk: 请问 执行第三个异或时,这个相当于a=b对吧,但为什么这个a不是等于赋值后也就是交换后的b

  • c++函数重载

    biter down: 表情包博客已修改,感谢大佬指点🙏

大家在看

  • enum4linux一键查询SMB信息(KALI工具系列十六) 192
  • MySQL索引什么时候会失效
  • 【个人博客搭建】基于Halo+docker compose的个人博客搭建教程,全程官方文档开路,简单易学,快来搭建一个属于自己的博客网站吧 540
  • C语言----获取一个整数二进制序列中所有的偶数位和奇数位,分别打印出二进制序列
  • 基于SSM的车辆管理系统+291145(免费领源码)可做计算机毕业设计JAVA、PHP、爬虫、APP、小程序、C#、C++、python、数据可视化、大数据、全套文案

最新文章

  • vue22:计算属性的完整写法
  • vue22:compted计算属性与methods方法区别
  • vue20:计算属性
2024年26篇
2023年86篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

聚圣源黄庭坚简介小孩起名字2013取一个英文起名女生成都给公司起名幼师就业培训班马赫5号金字和土字一起名棋牌室起什么名称好尹馨梓鼠宝宝八字起名起名大全软件ixionsagadt搜索风云榜免费提供店面起名德萨罗人鱼起名网打分免费测试题男谢氏起名大全适合农产品的商标起名亚太4号俄语翻译姚姓男生起名武汉工业学院地址姓方男宝宝起名大全市长我爱你盛唐风月嫤语书年苏通大桥实时路况面馆怎么起名好听的面馆名字大全男孩起名 恒空间登录器淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男孩疑遭霸凌 家长讨说法被踢出群国产伟哥去年销售近13亿网友建议重庆地铁不准乘客携带菜筐雅江山火三名扑火人员牺牲系谣言代拍被何赛飞拿着魔杖追着打月嫂回应掌掴婴儿是在赶虫子山西高速一大巴发生事故 已致13死高中生被打伤下体休学 邯郸通报李梦为奥运任务婉拒WNBA邀请19岁小伙救下5人后溺亡 多方发声王树国3次鞠躬告别西交大师生单亲妈妈陷入热恋 14岁儿子报警315晚会后胖东来又人满为患了倪萍分享减重40斤方法王楚钦登顶三项第一今日春分两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?周杰伦一审败诉网易房客欠租失踪 房东直发愁男子持台球杆殴打2名女店员被抓男子被猫抓伤后确诊“猫抓病”“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火男孩8年未见母亲被告知被遗忘恒大被罚41.75亿到底怎么缴网友洛杉矶偶遇贾玲杨倩无缘巴黎奥运张立群任西安交通大学校长黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发妈妈回应孩子在校撞护栏坠楼考生莫言也上北大硕士复试名单了韩国首次吊销离岗医生执照奥巴马现身唐宁街 黑色着装引猜测沈阳一轿车冲入人行道致3死2伤阿根廷将发行1万与2万面值的纸币外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万手机成瘾是影响睡眠质量重要因素春分“立蛋”成功率更高?胖东来员工每周单休无小长假“开封王婆”爆火:促成四五十对专家建议不必谈骨泥色变浙江一高校内汽车冲撞行人 多人受伤许家印被限制高消费

聚圣源 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化