C 物件的淺複製和深複製詳解及簡單例項

2022-10-04 01:18:12 字數 632 閱讀 7491

c++物件的淺複製和深複製詳解及簡單例項

淺複製:兩個物件複製程式設計客棧完成後共享某些資源(記憶體),其中乙個物件的銷毀會影響另乙個物件

深複製:兩個物件複製完成後不會共享任何資源,其中乙個物件的銷毀不會影響另乙個物件

下面我們來看一段**,以便直觀的理解:

#include

#include

using namespace std;

class student ;

student::student(){}

student::student(int n,char* p)

student::~s程式設計客棧tudent()

void student::display()

在執行t=s時,運算子過載函式內已為t分配記憶體空間。

對於上述運算子過載函式有兩點說明:

1.形參一定要是引用型別,否則執行t=s時,就要先將實參s複製到形參s,這個過程是淺複製,沒有為形參s分配記憶體空間,執行會出錯;

2.返回值一定要是引用型別,因為執行t=s相當於執行t.=(s),若返回值不是引用型別,那麼還要將函式的返回物件複製到t,又會出錯

本文標題: c++物件的淺複製和深複製詳解及簡單例項

本文位址:

淺複製和深複製

在c 中,下面三種物件需要呼叫拷貝建構函式 有時也稱 複製建構函式 1 乙個物件作為函式引數,以值傳遞的方式傳入函式體 全域性函式,傳入的是物件 void g fun resume c 2 乙個物件作為函式返回值,以值傳遞的方式從函式返回 全域性函式 返回的是物件 resume g fun 3 乙個...

深複製和淺複製

以下 是否完全正確,執行可能得到的結果是 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 class a class b b void sayhello b b int main 程式正常執行 程式編譯錯誤 程式崩潰 程式死迴圈 這個程式會直接崩潰 voidsayhello ...

深複製和淺複製

main.m 深複製和淺複製。created by yaomars on 16 4 27.import 建立乙個nsdictionary,並建立可變副本和不可變副本,說下是深複製還是淺複製。int main int argc,const char argv 第三種方式 建立乙個nsdictionar...