關於該封閉類的複製建構函式問題

2021-10-05 08:34:22 字數 624 閱讀 5794

【關於該封閉類的複製建構函式問題】

在上面的中,我們可以看到封閉類中定義了乙個複製建構函式,而這個複製建構函式是怎麼呼叫的呢?

經過除錯發現,函式在構造物件b2時呼叫了a類的自定義的無參建構函式

那是因為在構造b2時,首先先初始化b2中的類的成員物件a,而a並非通過複製構造的形式進行初始化的,沒有提供相應的引數,所以直接呼叫了a類的自定義的無參建構函式。

#include using namespace std;

class a

a(a&a) };

class b

/*b(b& b) */

};int main()

而在這種情況下,b2.a將作為引數進入到a的複製建構函式

(其實可以理解成有了b的複製建構函式,b2.a(即複製建構函式的引數)被吞了,就沒有辦法在a的構造中提供複製建構函式的引數)

希望大家能指出不足鴨~

關於複製建構函式

也許很多 c 的初學者都知道什麼是建構函式,但是對複製建構函式 copy constructor 卻還很陌生。對於我來說,在寫 的時候能用得上覆制建構函式的機會並不多,不過這並不說明複製建構函式沒什麼用,其實複製建構函式能解決一些我們常常會忽略的問題。為了說明複製建構函式作用,我先說說我們在程式設計...

c 類 建構函式 複製建構函式

複製建構函式是一種特殊的建構函式,它的作用是用乙個已經存在的物件去初始化另乙個物件。一般情況下不需要自行定義複製建構函式,系統預設提供乙個逐個複製成員值的複製建構函式。何時要使用呢?1.將新物件初始化為乙個同類物件 2.按值將物件傳遞給函式 3.函式按值返回物件 4.編譯器生成臨時物件 簡單的樣例如...

一點關於複製建構函式的問題

沒有帶u盤 暫且把問題記在這裡吧 1.對於內含類變數的函式 當存在student const student s 時候,怎樣讓其中類變數獲取數值?2.student int n 10,char m aaa date d 時,出現 了missing default parameter for para...