招聘網(wǎng)站的SEO怎么做網(wǎng)站推廣軟件費(fèi)用是多少
深拷貝 vs. 淺拷貝
- 深拷貝:開辟新內(nèi)存,獨(dú)立對(duì)象,堆區(qū)
- 淺拷貝:共享內(nèi)存,引用對(duì)象,棧區(qū)
深拷貝:深拷貝是一種拷貝方式,它會(huì)在堆區(qū)重新分配內(nèi)存并復(fù)制對(duì)象的內(nèi)容。
這意味著原對(duì)象和新對(duì)象是完全獨(dú)立的,對(duì)其中一個(gè)對(duì)象的修改不會(huì)影響另一個(gè)對(duì)象。
通常用于處理動(dòng)態(tài)分配內(nèi)存的情況,如指針指向的數(shù)據(jù)。淺拷貝:淺拷貝是一種拷貝方式,它只是簡(jiǎn)單地復(fù)制對(duì)象的值或引用。
這意味著原對(duì)象和新對(duì)象會(huì)共享相同的內(nèi)存,對(duì)其中一個(gè)對(duì)象的修改可能會(huì)影響另一個(gè)對(duì)象。
通常用于處理?xiàng)I戏峙涞膶?duì)象,如基本數(shù)據(jù)類型或?qū)ο蟮囊谩?
拷貝構(gòu)造
又叫:顯式調(diào)用
- 用于對(duì)象初始化和參數(shù)傳遞。
- 語(yǔ)法:
MyClass(const MyClass& other)
示例:
MyClass obj1; // 創(chuàng)建第一個(gè)對(duì)象
MyClass obj2(obj1); // 使用拷貝構(gòu)造函數(shù)創(chuàng)建第二個(gè)對(duì)象并復(fù)制內(nèi)容
運(yùn)算符=重載構(gòu)造
又叫:隱式調(diào)用
- 用于自定義對(duì)象賦值行為
- 語(yǔ)法:
MyClass& operator=(const MyClass& other)
示例:
MyClass obj1; // 創(chuàng)建第一個(gè)對(duì)象
MyClass obj2; // 創(chuàng)建第二個(gè)對(duì)象obj2 = obj1; // 使用運(yùn)算符=重載構(gòu)造賦值內(nèi)容
explicit
關(guān)鍵字
- 防止隱式調(diào)用
示例:
class MyClass {
public:explicit MyClass(int value) {// 構(gòu)造函數(shù)代碼}
};MyClass obj(42); // 合法的顯式創(chuàng)建對(duì)象
// 下面這行將引發(fā)編譯錯(cuò)誤,因?yàn)闆]有隱式類型轉(zhuǎn)換
// MyClass obj = 42;