五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網 會員登陸 & 注冊

C++知識分享:C++類特殊成員函數

2022-01-15 20:03 作者:C語言編程__Plus  | 我要投稿

C++類中有幾個特殊的非靜態(tài)成員函數,當用戶未定義這些函數時,編譯器將給出默認實現。C++11前有四個特殊函數,C++11引入移動語義特性,增加了兩個參數為右值的特殊函數。


這六個函數分別是:

默認構造函數

默認構造函數指不需要參數就能初始化的構造函數。包含無參所有參數有默認值兩種類型的構造函數。

復制構造函數

復制構造函數指使用該類的對象作為參數的構造函數??梢杂衅渌麉?,但必須提供默認值。

復制賦值運算符

重載等號=,將該類的對象賦值已定義對象

析構函數

沒啥可說的。

移動構造函數

C++11新增,該類的右值對象為參數的構造函數,其余同復制構造函數。

移動復制運算符

復制賦值運算符,唯一不同是參數為右值

看定義容易迷糊,上代碼就會很清晰:

用g++或者clang編譯,加上-fno-elide-constructors?-std=c++0x選項。執(zhí)行程序輸出如下:

結果是我們預期的。需要注意的是Foo?foo3?=?foo1的形式會調用復制構造函數,不會調用復制賦值運算符。原因是Foo?foo3?=?xxx聲明和定義一個新對象,而賦值是作用在已定義對象移動賦值運算符同理。

C++11新增了=default和=delete函數修飾符,提示編譯器使用默認或者刪除默認的特殊函數。需要注意的是這兩個修飾符只能修飾上述特殊函數,用戶可以用其對特殊函數進行裁剪。一個例子:

寫在最后:對于準備學習C/C++編程的小伙伴,如果你想更好的提升你的編程核心能力(內功)不妨從現在開始!

微信公眾號:C語言編程學習基地

C語言零基礎入門教程(83集全)

整理分享(多年學習的源碼、項目實戰(zhàn)視頻、項目筆記,基礎入門教程)

歡迎轉行和學習編程的伙伴,利用更多的資料學習成長比自己琢磨更快哦!



C++知識分享:C++類特殊成員函數的評論 (共 條)

分享到微博請遵守國家法律
清水河县| 萍乡市| 沙雅县| 商水县| 宁蒗| 江孜县| 灵石县| 个旧市| 河津市| 罗甸县| 景谷| 石嘴山市| 綦江县| 布尔津县| 怀化市| 宜州市| 周至县| 邵东县| 应城市| 石门县| 灵山县| 青阳县| 莲花县| 呼伦贝尔市| 沐川县| 沈丘县| 盖州市| 湘西| 西青区| 丁青县| 永福县| 大同县| 法库县| 岐山县| 禄丰县| 藁城市| 公主岭市| 湛江市| 石泉县| 正蓝旗| 朝阳县|