拷貝構造函式呼叫的四個地方

2021-09-29 12:00:54 字數 456 閱讀 5256

拷貝建構函式什麼時候呼叫:

1.使用類的乙個物件初始化類的另外乙個物件的時候;

這個就是最正常的呼叫拷貝建構函式的地方

2.如果函式的形參是類的物件,呼叫函式時,進行形參與實參的結合時;

形參是物件,與實參結合的時候就需要把實參賦給形參,就成了拷貝構造

3.函式的返回值是類的物件時,函式執行返回後是呼叫者時;

返回值是類的物件的話,接收返回值的肯定也是物件,所以也相當於拷貝建構函式

4.需要產生乙個臨時的類物件時。

拷貝建構函式為什麼傳引用?

防止無限遞迴,如果不傳&的話,這個物件就會繼續調構造與拷貝構造,就會這樣無限的遞迴下去

拷貝構造函式呼叫的時機

拷貝函式何時會被呼叫呢?最明顯的就是用乙個類物件初始化另外乙個物件的時候 比如x a x 這句語義上就是先建立x 臨時物件,再呼叫x的拷貝建構函式 初始化 a,這只是語義上的,編譯器完全可能優化掉臨時物件 注意區分初始化和賦值 呼叫assignment operator 第二種情況是函式按值傳引數的...

C 拷貝建構函式的呼叫

晚上做c 作業,碰到乙個拷貝函式的問題,看了會書也沒太看明白,回到寢室馬上試驗了下才差不多弄清楚了拷貝建構函式及臨時物件的呼叫。拷貝建構函式主要在以下三種情況下起初始化作用 1.在宣告語句中用乙個物件初始化另乙個物件 2.將乙個物件作為引數按值呼叫方式傳遞給另乙個物件時生成物件副本 3.生成乙個臨時...

C 拷貝建構函式的呼叫

拷貝建構函式主要在以下三種情況下起初始化作用 1.在宣告語句中用乙個物件初始化另乙個物件 2.將乙個物件作為引數按值呼叫方式傳遞給另乙個物件時生成物件副本 3.生成乙個臨時物件作為函式的返回結果。這種情況只有在windwos下是真的,我只是在windos xp vc 6.0 以下面的 為例 incl...