(1)complex型別的函式會通過複製建構函式將return中的物件複製給以乙個臨時物件
(2)注意在本次呼叫中的式子n=f+m+n;
通常來說這個式子會被解釋為n=(f+m)+n
但是在實際執行的過程中卻是先利用複製建構函式將n中的形參構造出來,然後利用複製建構函式將m構造出來
後面按照n=(f+m)+n的順序執行
(3)在函式執行的過程中需要注意的是=是不使用複製建構函式的,而是使用的是operator=的重建構函式
就是說return m是利用複製建構函式建立了乙個臨時物件,而外面使用的n=(f+m)+n中的=則是通過operator=進行接收的
class
complex;~
complex()
complex
(double real,
double img)
;complex
(const complex&c)
;void
print()
; complex operator
+(complex c);}
;complex::
complex
(const complex&c)
complex complex::
operator
+(complex c)
complex::
complex
(double real,
double img)
void complex::
print()
intmain()
C 中類的建構函式與複製建構函式
建構函式是類的特殊的成員函式,只要建立類型別的新物件,都要執行建構函式。建構函式的工作是保證每個物件的資料成員具有合適的初始值。建構函式的名字與類的名字相同,並且不能指定返回型別。像其他任何函式一樣,它們可以沒有形參,也可以定義多個形參。複製建構函式是一種特殊建構函式,具有單個形參,該形參 常用co...
c 中複製建構函式
在c 中自動提供這些成員函式 1,預設的建構函式,如果自定義的類中,沒有自定義建構函式時,自動會呼叫此預設函式 2,複製建構函式,如果自定義類中沒有定義,在物件複製時,會自動呼叫 作用 複製建構函式用於將乙個複製到乙個新建立的物件中。3,賦值運算子 將已有的物件賦給另乙個物件時,將使用過載的賦值操作...
C 學習 建構函式與複製建構函式
在建構函式的函式頭初始化 includeusing namespace std class rectangle private const int length int width int main void 複製建構函式 預設複製建構函式的機制 includeusing namespace std...