C++(第二課) 學(xué)習(xí)筆記

構(gòu)造函數(shù)

當在創(chuàng)建一個類的對象時,會自動調(diào)用構(gòu)造函數(shù)。構(gòu)造函數(shù)可以重載。

但參數(shù)的構(gòu)造函數(shù)可以當作轉(zhuǎn)換函數(shù)來使用,代碼如下

class A

{

private:

int a;

public:

A(int n):a(n){}

}


int main()

{

A a = 10; // 調(diào)用單參數(shù)的構(gòu)造函數(shù)

return 0;

}


賦值構(gòu)造函數(shù)

函數(shù)原型是: className(const className &c);

如果類的成員含有指針變量,則應(yīng)該重載該函數(shù)。如果不重載,在使用一個對象創(chuàng)建另一個對象時就只會拷貝指針的值, 而不會拷貝指針所指向的內(nèi)容。這樣會導(dǎo)致內(nèi)存被重復(fù)釋放。


賦值運算符函數(shù)

函數(shù)原型是: className& operator=(const className &c);

該函數(shù)同樣是在有成員指針變量的情況下需要重載。如果不重載,在使用一個對象給另一個對象賦值時,會導(dǎo)致內(nèi)存的泄漏,并且也會導(dǎo)致內(nèi)存的重復(fù)釋放。

在重載該函數(shù)時,還有一個需要注意的地方是,需要判斷傳入的對象是否自身,如果不判斷的話,在傳入自身時會丟失數(shù)據(jù)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy閱讀 9,688評論 1 51
  • 題目類型 a.C++與C差異(1-18) 1.C和C++中struct有什么區(qū)別? C沒有Protection行為...
    阿面a閱讀 7,896評論 0 10
  • 第一天 一.內(nèi)聯(lián)函數(shù)(inline) 函數(shù)調(diào)用的時候需要建立棧內(nèi)存環(huán)境,進行參數(shù)傳遞,并產(chǎn)生程序執(zhí)行轉(zhuǎn)移,這些工作...
    陳果123閱讀 1,227評論 0 1
  • 親愛的女孩,愿你笑容溫暖,融化寒風(fēng)冰霜;愿你心懷夢想,執(zhí)著走向遠方。 ...
    蘇諾_杜若閱讀 529評論 0 1
  • 昨天有點興奮,早上我和女兒都沒有早起,爸爸也沒有叫我們,說是女兒昨天表現(xiàn)好,今天獎勵我們自然醒。正當我沉浸在...
    崔嘉諾閱讀 192評論 0 0

友情鏈接更多精彩內(nèi)容