#include<iostream>
using namespace std;
//深拷贝与浅拷贝//浅拷贝带来的问题就是堆区的内存重复释放,要用 深拷贝来解决
class Person
{public:Person(){cout << "Person的默认构造函数调用" << endl;}Person(int age,int height){m_Age = age;m_Height = new int(height);//利用new来创建一个堆区数据height  但是堆取数据用完之后,要手动释放cout << "Person的有参构造函数调用" << endl;}//自己实现拷贝构造函数 解决浅拷贝带来的问题 修改后p1 p2走自己的析构函数,不会产生重复释放Person(const Person &p){cout << "Person拷贝构造调用" <<endl;m_Age = p.m_Age;//m_Height = p.m_Height;编译器默认实现就是这行代码//深拷贝操作m_Height = new int(*p.m_Height);//先解引用出162,再用新的堆区地址存储它}~Person(){//析构代码,将堆区开辟数据做释放操作if(m_Height != NULL){delete m_Height;//释放堆区内存,但是p1 p2都释放了一遍,导致堆区内存重复释放,所以出错m_Height = NULL;}cout << "Person的析构函数调用" << endl;}int m_Age;//年龄int * m_Height;
};void test01()
{Person p1(18,162);cout << "p1的年龄为:" << p1.m_Age << " 身高为:" << *p1.m_Height << endl;Person p2(p1);cout << "p2的年龄为:" << p2.m_Age << " 身高为:" << *p2.m_Height << endl;
}
int main()
{test01();system("pause");return 0;
}

P110中 深拷贝与浅拷贝问题相关推荐

  1. Python中深拷贝与浅拷贝的区别?

    往期面试题: 列举Python中的标准异常类? 说说Python面向对象三大特性? 说说Python中有几种数据类型? 说说Python模块主要分哪三类? 废话不多说,开始今天的题目: 问:说说Pyt ...

  2. C++中深拷贝和浅拷贝

    C++中深拷贝和浅拷贝的问题是很值得我们注意的知识点,如果编程中不注意,可能会出现疏忽,导致bug.本文就详细讲讲C++深浅拷贝的种种. 对于一般的对象,如: C++代码 int a = 10; in ...

  3. js中深拷贝和浅拷贝问题

    最近在学习c++,以前从来没接触过也没想到过深拷贝和浅拷贝.c++里有深拷贝和浅拷贝,那么其它语言中应该也有. 本文参考: https://juejin.im/post/59ac1c4ef265da2 ...

  4. python中深拷贝与浅拷贝的区别

    ####################python中的数据类型####################### ##########python中的数据类型有6种,分别为:数字类型如int,float ...

  5. 浅析Python中深拷贝和浅拷贝

    按照以下不同情况,在IDE中逐个解除注释,就明白了 import copy""" 第一种情况,不可变类型变量,都是引用 """ # a = ...

  6. python中深拷贝和浅拷贝_**Python中的深拷贝和浅拷贝详解

    甚至连type其本身都是对象,type对象 Python中变量与C/C++/Java中不同,它是指对象的引用,Python是动态类型,程序运行时候,会根据对象的类型 来确认变量到底是什么类型. 单独赋 ...

  7. Objective-C中深拷贝与浅拷贝简述

    ios开发过程中,大体上会区分为两个概念: 对象(如NSString,NSNumber等类型) 容器(如NSArray,NSDictionary等类型) 对象 copy后拿到的对象也是和copy的对象 ...

  8. JAVA中深拷贝与浅拷贝(在网上找到的) 希望对于理解深拷贝与浅拷贝有帮助...

     什么是clone? 在实际编程过程中,我们常常要遇到这种情况:有一个对象A,在某一时刻A中已经包含了一些有效值,此时可能会需要一个和A完全相同新对象B,并且此后对B任何改动都不会影响到A中的值,也就 ...

  9. python中深拷贝和浅拷贝

    转载于:https://www.cnblogs.com/mihoutao/p/10955858.html

最新文章

  1. 深度丨霍金的去世让我想起了微软提出的人工智能十大原则
  2. pip install lxml 总是失败
  3. 全球及中国烯丙基硫脲行业十四五需求产量及投资规模预测报告2022版
  4. ArcEngine 添加字段
  5. .写一个方法 void printScore(int score),输出相应的等级。score代表分数,等级格式如下:
  6. rootfs 制作ubuntu_Ubuntu12笔记: 基于busybox的Linux小系统制作
  7. 两个div在同一行且不换行
  8. 和情商高的人聊天是什么样的体验?
  9. cmake错误:Could not find a package configuration file provided by 的一种解决方法
  10. parawork平台介绍
  11. 相关滤波目标追踪一:鼻祖Mosse算法的matlab解析
  12. 共享硬盘没有权限访问计算机,Win7系统打开磁盘共享说“没有访问权限
  13. 第十九天前端jsp Ajax
  14. word2vec的pytorch实现
  15. 更改laravel的默认端口8000
  16. opencv-自定义色带产生类似jet的效果
  17. 通灵学院|游戏设计研习5:游戏机制的平衡★(4300字)
  18. 史上R语言最强--资源(免费课程、书籍、教程和各种高级图表)
  19. 黑阔的win10--把win10打造成kali(记录帖)
  20. chkdsk /f P 很强大,帮我解决了硬盘写保护的问题

热门文章

  1. flutter 欢迎页
  2. python千年虫问题enumerate函数
  3. Educoder大数据技术与应用作业-郑悦林
  4. 25岁前必读的25本书
  5. 一元三次方程求解 (laoj1114)
  6. 让Win11系统更好用的几个设置
  7. 如何打造运营商级的超高清强互动直播业务?
  8. Java-Problems
  9. Python基础-list和tuple使用
  10. linux服务器科学上网,开源一年,openGauss诠释什么是快速成长