物件的賦值與物件的複製

2021-08-02 02:10:12 字數 1539 閱讀 1872

物件的賦值針對指物件中所有資料成員的值;

物件的賦值只對其中的資料成員賦值

物件賦值中,不涉及成員函式的話題,因為同一類的所有物件有各自

的成員資料,但是成員函式是共享的。

同類物件之間可以互相賦值,物件名1=物件名2.

實現的原理:賦值運算子的過載。

物件的複製是用已有的物件轉殖出乙個新物件:類名 物件2(物件1),比如:

box box2(box1);

對於上面的語句來說,box2的初始化的引數是另外乙個物件。

物件的複製的原理:編譯系統提供的預設複製建構函式。該複製建構函式舉例如下:

box::box(const box &b)

上面預設複製建構函式中的引數用引用型別的好處為:不必為了這個物件專門開闢儲存空間。

引數之所以用const型別是因為沒有必要在函式中改變b的值,有效保護b引用的實參不被修改。

等價的形式: 類名 物件2=物件1;這種也執行複製建構函式

例如:box box2=box1;

賦值初始化             vs                  複製初始化

c味的賦值初始化                        c++味的複製初始化(呼叫預設複製建構函式)

int a=5                                          int a(5);

float w=a+3.2                              float w(a+3.2)

string name="l. he"                string name("l.he")

string s(name);

time t1;

time t2(8,30,20)

time t3(t1);

何時要通過複製建構函式進行物件複製?

1.新建立乙個物件:利用複製建構函式進行初始化

box box1(box2);

2. 當函式的引數為類的物件:呼叫函式時,將實參物件完整地傳遞給形參,通過呼叫

複製建構函式來建立乙個實參的拷貝

3. 函式的返回值是類的物件:在函式呼叫完畢,將函式中的物件複製乙個臨時物件並傳遞給該函式的呼叫處。

c 物件的複製與賦值

1 物件的賦值 如果對乙個類定義了兩個或多個物件,則這些同類的物件之間可以互相賦值,或者說,乙個物件的值可以賦給另乙個同類的物件。這裡所指的物件的值是指物件中所有資料成員的值。物件之間的賦值也是通過賦值運算子 進行的。本來,賦值運算子 只能用來對單個的變數賦值,現在被擴充套件為兩個同類物件之間的賦值...

物件複製和物件賦值

1 先看這個例子 include include using namespace std class student 建構函式 student string strname,int nage name strname age nage 帶引數的建構函式 student void show int m...

物件複製和物件賦值的區別

1.何時呼叫複製建構函式 複製建構函式用於將乙個物件複製到新建立的物件中。也就是說,它用於初始化過程中,而不是常規的賦值過程中。類的複製建構函式原型通常如下 class name const class name 它接受乙個指向類物件的常量引用作為引數。例如,string類的複製建構函式的原型如下 ...