当前位置:网站首页>The difference between deep copy and shallow copy
The difference between deep copy and shallow copy
2022-04-23 18:03:00 【OceanKeeper1215】
The default copy structure can complete the simple assignment of the data members of the object , This is a shallow copy .
When the data resource of the object is the heap pointed to by the pointer , The default copy constructor simply copies the pointer .
But then released , Will be released twice , That is, the same memory address is released twice , There will be mistakes .
Deep copy means , The programmer writes a copy of the structure himself , When calling the copy construct , The compiler preferentially calls the programmer's handwritten copy to construct , The programmer writes in a copy of , You can open up a separate memory space to store data , This is the deep copy .
class Test
{
private:
int* p;
public:
Test(int x)
{
this->p=new int(x);
cout << " Object created " << endl;
}
~Test()
{
if (p != NULL)
{
delete p;
}
cout << " Object is released " << endl;
}
int getX() { return *p; }
// Deep copy ( copy constructor )
Test(const Test& a)
{
this->p = new int(*a.p);
cout << " Object created " << endl;
}
// Shallow copy ( copy constructor )
//Test(const Test& a)
//{
// this->p = a.p;
// cout << " Object created " << endl;
//}
};
int main()
{
Test a(10);
// We manually write the copy constructor ,C++ The compiler will call what we wrote manually
Test b = a;
return 0;
}
版权声明
本文为[OceanKeeper1215]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/04/202204230545105131.html
边栏推荐
- QTableWidget使用讲解
- Secure credit
- Implementation of image recognition code based on VGg convolutional neural network
- 消费者灰度实现思路
- [UDS unified diagnostic service] IV. typical diagnostic service (6) - input / output control unit (0x2F)
- How to install jsonpath package
- Thirteen documents in software engineering
- re正则表达式
- journal
- The ultimate experience, the audio and video technology behind the tiktok
猜你喜欢

Operators in C language

2022 Shanghai safety officer C certificate operation certificate examination question bank and simulation examination

C#的随机数生成

Examination question bank and online simulation examination of the third batch (main person in charge) of special operation certificate of safety officer a certificate in Guangdong Province in 2022

idea中安装YapiUpload 插件将api接口上传到yapi文档上
![[UDS unified diagnostic service] (Supplement) v. detailed explanation of ECU bootloader development points (1)](/img/74/bb173ca53d62304908ca80d3e96939.png)
[UDS unified diagnostic service] (Supplement) v. detailed explanation of ECU bootloader development points (1)

Go language JSON package usage

Go's gin framework learning

Dock installation redis

Gobang game based on pyGame Library
随机推荐
Basic usage of crawler requests
Go file operation
Gobang game based on pyGame Library
Nat Commun|在生物科学领域应用深度学习的当前进展和开放挑战
587. Install fence / Sword finger offer II 014 Anagrams in strings
C#字节数组(byte[])和字符串相互转换
positioner
Format problems encountered in word typesetting
2022 Jiangxi Photovoltaic Exhibition, China Distributed Photovoltaic Exhibition, Nanchang Solar Energy Utilization Exhibition
journal
Qtablewidget usage explanation
Halo open source project learning (II): entity classes and data tables
Go语言JSON包使用
Install pyshp Library
C network related operations
Solving the problem of displaying too many unique values in ArcGIS partition statistics failed
Operation of 2022 mobile crane driver national question bank simulation examination platform
[UDS unified diagnostic service] v. diagnostic application example: Flash bootloader
Amount input box, used for recharge and withdrawal
2022 Jiangxi Photovoltaic Exhibition, China distributed Photovoltaic Exhibition, Nanchang solar energy utilization Exhibition