• 构造,析构,拷贝构造核心点总结

  • 构造函数

并不是开空间创建对象  主要完成类对象初始化工作

构造函数是一个特殊的成员函数,名字与类名相同,创建类类型对象时由编译器自动调用

在对象的生命周期内只调用一次

特征如下:
1. 函数名与类名相同。
2. 无返回值。
3. 对象实例化时编译器自动调用对应的构造函数。
4. 构造函数可以重载

5.如果类中没有显式定义构造函数,则C++编译器会自动生成一个无参的默认构造函数,一旦用户显式定义编译器将不再生成

6,无参的构造函数和全缺省的构造函数都称为默认构造函数,并且默认构造函数只能有一个

  • 析构函数

与构造函数功能相反,析构函数不是完成对象的销毁,局部对象销毁工作是由编译器完成的。而 对象在销毁时会自动调用析构函数,完成类的一些资源清理工作

特征如下:
1. 析构函数名是在类名前加上字符 ~。

2. 无参数无返回值。

3. 一个类有且只有一个析构函数。若未显式定义,系统会自动生成默认的析构函数。

4. 对象生命周期结束时,C++编译系统系统自动调用析构函数

5.编译器生成的默认 析构函数,对会自定类型成员调用它的析构函数

  • 拷贝构造函数

只有单个形参,该形参是对本类类型对象的引用(一般常用const修饰),在用已存在的类类型对象 创建新对象时由编译器自动调用

特征如下: 
1. 拷贝构造函数是构造函数的一个重载形式。

2. 拷贝构造函数的参数只有一个且必须使用引用传参,使用传值方式会引发无穷递归调用

无穷递归如下图:

传值引发对象拷贝,继续调用拷贝构造,始终无法完成,只能无限递归调用

3若未显示定义,系统生成默认的拷贝构造函数。 默认的拷贝构造函数对象按内存存储按字节序完成拷 贝,这种拷贝我们叫做浅拷贝,或者值拷贝,只拷贝成员对象所包含的成员变量 对开辟的内存空间不会进行拷贝

小tips !!! 构造,析构,拷贝构造知识点总结相关推荐

  1. 《深度探索C++对象模型》读书笔记第五章:构造析构拷贝语意学

    <深度探索C++对象模型>读书笔记第五章:构造析构拷贝语意学 对于abstract base class(抽象基类),class中的data member应该被初始化,并且只在constr ...

  2. c/c++教程 - 2.4.2.1~2 对象的初始化和清理,构造函数和析构函数,构造函数的分类和调用(有参构造,无参构造,普通构造,拷贝构造,括号法,显示法,隐式转换法,匿名对象)

    目录 4.2 对象的初始化和清理 4.2.1 构造函数和析构函数 4.2.2 构造函数的分类及调用 相关教程 4.2 对象的初始化和清理 生活中我们买的电子产品都基本会有出厂设置,在某一天我们不用时候 ...

  3. 构造、拷贝构造、赋值、析构

    需要注意的问题(当数据成员函数指针型变量,需要申请空间赋值时) 1.构造函数 ①需要给空指针申请一个'\0'的空间 2.拷贝构造函数 ①传入的参数,必须引用传递否则会出现无休止的拷贝构造 ②对其参数值 ...

  4. 《深度探索C++对象模型》--5 构造析构拷贝 6 执行期语意学

     <深度探索C++对象模型>--5构造.析构.拷贝语意学 1.纯虚函数: (1)C++可以定义和调用一个纯虚函数,不过只可以静态调用,不可以由虚拟机制调用. 注意:pure virtu ...

  5. C++中的trivial和non-trivial构造/析构/拷贝/赋值函数及POD类型

    在侯捷的<STL源码剖析>里提到trivial和non-trivial及POD类型,相关知识整理如下. trivial意思是无意义,这个trivial和non-trivial是对类的四种函 ...

  6. Effective C++学习笔记——构造/析构/拷贝运算

    条款9:决不再构造和析构过程中调用virtual函数,包括通过函数间接调用virtual函数. 应用:想在一个继承体系中,一个derived class被创建时,某个调用(例如生成相应的日志log)会 ...

  7. c++: 移动构造/赋值 和 拷贝构造/赋值

    Copy Constructor vs. Assignment https://blog.csdn.net/u013904227/article/details/107441848 [阅读原文] 这篇 ...

  8. 派生类的拷贝构造【C++继承】

    语法 拷贝构造顺序 图示 说明 拷贝构造顺序 拷贝构造实例 语法 派生类::派生类(const 派生类& another):基类(another),派生类新成员(another.新成员) {/ ...

  9. C++ 拷贝构造 与 赋值运算符重载

    拷贝构造 当我们创建了一个对象时,想让它的内容和一个已经创建好的对象的内容相同,那么就必须用到拷贝构造.拷贝构造编译器也会自动生成,也是C++类中的6个默认函数之一. 拷贝构造函数格式类名(const ...

最新文章

  1. python 字典的值可以为集合吗_转:Python字典与集合操作总结
  2. 11年标致307多少钱_11优布劳幼兽红西柚精酿啤酒多少钱一瓶?
  3. 【例题 6-21 UVA - 506】System Dependencies
  4. java定位线程阻塞_Arthas - 定位 Java 性能问题原来这么简单
  5. 实现前后端数据交互方法汇总
  6. java运算级别_java运算符优先级别
  7. ElasticSearch 2 (16) - 深入搜索系列之近似度匹配
  8. TortoiseSVN 使用详细步骤(三):安装
  9. Transforming Cooling Optimization for Green Data Center via Deep Reinforcement Learning 笔记
  10. 什么蓝牙耳机最好用?公认好用性价比高的蓝牙耳机推荐
  11. 神奇密码锁 bfs
  12. echarts从全国地图切换成省级地图地图不居中的问题
  13. linux vim粘贴和复制文件,【linux】vim怎么粘贴其他地方复制的代码?
  14. 君子不和牛置气,混蛋让它混到底-- 骂 老板 6
  15. carsim2019.1下载安装包
  16. 小学期前端实训笔记(2)-css【菜狗级】
  17. 如何下载安装Metasploit
  18. 应用-单向链表-数据结构和算法
  19. Unity | 扩展编辑器之新建Lua脚本(无代码操作)
  20. MATLAB—医学图像读取(1)

热门文章

  1. Scanvenger游戏制作笔记(八)Unity3D关卡胜利条件的判断
  2. 第十七届CH32V307多车组头尾双车摄像头传统扫线循迹
  3. SAP S/4 HANA轻聊
  4. MongoDB的可视化工具(Studio 3T)
  5. MacBook Pro U盘读写速度太慢解决办法
  6. SV学习笔记—队列及方法
  7. 如何做到卓有成效的敏捷?
  8. 视图、存储过程、触发器讲解
  9. 计算机教师的幸福,一名信息技术教师的职业幸福感
  10. 公司成立三年即上市 网游速度获资本垂青