码迷,mamicode.com
首页 > 其他好文 > 详细

浅拷贝和深拷贝

时间:2019-09-28 14:51:46      阅读:97      评论:0      收藏:0      [点我收藏+]

标签:构造   close   内存   null   view   拷贝构造函数   pre   bsp   构造函数   

技术图片
 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 
 4 class person
 5 {
 6 public:
 7 
 8     person(int age,int height)
 9     {
10         m_age = age;
11         m_Height = new int(height);//我们在堆区开辟了内存,我们需要在某个时候释放 
12         puts("有参构造函数调用");
13     }
14 
15     person(const person &p)
16     {
17         puts("拷贝构造函数调用");
18         m_age = p.m_age;
19         m_Height = new int(*p.m_Height);
20     }
21     ~person()
22     {
23         if(m_Height != NULL)
24         {
25             delete m_Height;
26             m_Height = NULL;
27         } 
28         puts("析构函数调用");
29     }
30 
31     int m_age;
32     int *m_Height;
33 };
34 
35 
36 void test01()
37 {
38     person p(22,160);
39     cout << p.m_age << " " << *p.m_Height << endl;
40     person p2(p);
41     cout << p2.m_age << " " << *p2.m_Height << endl;
42 } 
43 
44 int main()
45 {
46     //test();
47     test01();
48     return 0;
49 }
View Code

技术图片技术图片

 

分别是浅拷贝和深拷贝的示意图

技术图片

 

浅拷贝和深拷贝

标签:构造   close   内存   null   view   拷贝构造函数   pre   bsp   构造函数   

原文地址:https://www.cnblogs.com/mch5201314/p/11602852.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!