拷贝构造函数:
         用一个已经存在的对象来生成一个相同类型的新对象。(浅拷贝)
默认的拷贝构造函数:
         如果自定义了拷贝构造函数,编译器就不在生成默认的拷贝构造函数。 
         如果没有自定义拷贝构造函数,但在代码中用到了拷贝构造函数,编译器会生成默认的拷贝构造函数。
深拷贝&浅拷贝:
         系统默认的拷贝构造函数是浅拷贝,类中含有指针类型的变量,须自定义拷贝构造函数用深拷贝来实现。
         浅拷贝只是对指针的拷贝,拷贝后两个指针指向同一个内存空间,所指向的空间内容并没有复制,而是由两个对象共用。深拷贝不但对指针进行拷贝,而且对指针指向的内容进行拷贝,经深拷贝后的指针是指向两个不同地址的指针。

如图:   
             

思考:
      当对象中存在指针成员时,为什么需要自己实现拷贝构造函数?如果不,会出现怎样的问题?

看代码:

#include<iostream>
class CGoods
{
p

C++: 06---构造函数析构函数相关推荐

  1. C++派生类含有成员对象构造函数析构函数顺序

    参考博客:传送门1 当类中含有对象成员时: 类的构造函数要包含对成员对象的初始化,如果构造函数的成员初始化列表没有包含对成员对象的初始化,系统会自动调用成员对象的无参构造函数.顺序上:先调用成员对象的 ...

  2. C++构造函数/析构函数 设置成private的原因

    C++构造函数/析构函数 设置成private的原因 标签(空格分隔): c/c++ 将构造函数,析构函数声明为私有和保护的,那么对象如何创建? 已经不能从外部调用构造函数了,但是对象必须被构造,应该 ...

  3. 在构造函数/析构函数中调用virtual函数带来的影响

    在构造函数/析构函数中调用virtual函数,那么调用的一定是本类中的virtual函数. 先看一段代码: #include<iostream>class Base { public:Ba ...

  4. C++反汇编第一讲,认识构造函数,析构函数,以及成员函数

    C++反汇编第一讲,认识构造函数,析构函数,以及成员函数 以前说过在C系列下的汇编,怎么认识函数.那么现在是C++了,隐含有构造和析构函数 一丶认识构造函数 高级代码: class MyTest { ...

  5. C++ 构造函数 析构函数

    C++ 构造函数 构造函数 默认构造函数 有参构造函数 析构函数 析构函数例子 析构函数执行时机 局部对象 全局对象 构造函数 构造函数 (constructor) 是一种特殊的成员函数. 它会在每次 ...

  6. c++ 构造函数析构函数 数据安全_C++知识点 16:构造函数和析构函数的语法

    #define _CRT_SECURE_NO_WARNINGS #include using namespace std;// 创建一个类( 类内包括: 2个构造函数,一个析构函数) class Pe ...

  7. C++——构造函数析构函数

    目录 类的构造函数 普通构造函数 带参数的构造函数 初始化列表来初始化字段 类的析构函数 类的构造函数 类的构造函数是类的一种特殊的成员函数,它会在每次创建类的新对象时执行. 构造函数的名称与类的名称 ...

  8. c++远征之继承篇——继承的概念、继承时构造函数/析构函数的先后顺序

    1.继承的概念 2.继承中,构造函数和析构函数的先后顺序

  9. PHP面向对象构造函数,析构函数

    构造函数 用来生成对象的函数 <body> <?php class Ren{ public $name;//姓名 public $sex;//性别 性别是人一出生就知道的,可以用构造 ...

  10. 类和对象编程(三):构造函数析构函数

    类的构造函数 类的构造函数是类的一种特殊的成员函数,它会在每次创建类的新对象时执行. 构造函数的名称与类的名称是完全相同的,并且不会返回任何类型,也不会返回 void.构造函数可用于为某些成员变量设置 ...

最新文章

  1. 我可以强制pip重新安装当前版本吗?
  2. a eraser eraser还是an_eraser前面用a还是an
  3. WebRTC 及点对点网络通信机制
  4. linux update语句,关于Update语句的调整(5-1)
  5. 汇编语言-008(条件跳转应用 、loopnz 条件循环指令使用 、loopz 条件循环指令使用 、 if语句编写汇编时 、while语句编写汇编时 、循环内的if语句嵌套)
  6. win32汇编-窗口 对话框 (三)
  7. Confluence 6 查看你的许可证细节
  8. element ui的时间选择器
  9. mujoco_py中文文档
  10. 2020浙江工业大学程序设计迎新赛——决赛(重现赛)G-抽卡
  11. C/C++每日一问--判断素数
  12. unity设置中文版
  13. Linux下Watchdog
  14. JVM调优系列(五)——JVM调优利器
  15. 手机QQ协议抓包教程
  16. oracle导出1455,oracle 11g导出数据时报ORA 1455错误的处理方法
  17. 以社交活动的方式做计划-乐高公司的大规模敏捷
  18. Ubuntu下键盘输入错乱问题
  19. Android 代理 wss,打android包使用wss协议进行websocket连接出错
  20. Windows便笺(win10,win7便笺存储位置,恢复便笺数据)

热门文章

  1. Asterisk配置文件说明
  2. LDR 、ADR介绍
  3. 广东计算机电子学校,广东省电子职业技术学校
  4. python切片操作的几种格式_【Python杂记】第四篇:序列切片
  5. 【转】对称加密和分组加密中的四种模式(ECB、CBC、CFB、OFB)
  6. LINQ TO SQL和Entity Framework 的关系 你了解多少?
  7. sharepoint的文件是怎样存放的及存放的表是哪个
  8. linux 14.04安装方法,Ubuntu 14.04 安装配置GNOME经典界面
  9. 【Codeforces - 找不到题号】三元环计数(bitset优化,压位)
  10. 【HYSBZ - 1088 】扫雷Mine (简单dp)