AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當(dāng)前位置:首頁 > 科技  > 軟件

C++中關(guān)于構(gòu)造函數(shù)的幾個關(guān)鍵字

來源: 責(zé)編: 時間:2024-01-26 09:05:25 221觀看
導(dǎo)讀今天我們將深入探討構(gòu)造函數(shù)中的三個關(guān)鍵字:= delete、= default 以及 explicit。這些關(guān)鍵字在C++中扮演著重要的角色,能夠提供更加精確的控制和更清晰的語義。一、= delete:顯式禁止首先,讓我們聚焦于 = delete 這個關(guān)鍵

今天我們將深入探討構(gòu)造函數(shù)中的三個關(guān)鍵字:= delete、= default 以及 explicit。這些關(guān)鍵字在C++中扮演著重要的角色,能夠提供更加精確的控制和更清晰的語義。Xhz28資訊網(wǎng)——每日最新資訊28at.com

Xhz28資訊網(wǎng)——每日最新資訊28at.com

一、= delete:顯式禁止

首先,讓我們聚焦于 = delete 這個關(guān)鍵字。在C++中,我們有時候希望禁止某個函數(shù)的調(diào)用,可能是因為該函數(shù)的默認實現(xiàn)不符合我們的需求,或者因為我們不希望該函數(shù)被使用。這時,= delete 就派上了用場。Xhz28資訊網(wǎng)——每日最新資訊28at.com

1. 禁止拷貝構(gòu)造函數(shù) 

考慮一個場景,我們希望某個類對象不可被拷貝。通過 = delete,我們可以明確表示禁止拷貝構(gòu)造函數(shù)的使用:Xhz28資訊網(wǎng)——每日最新資訊28at.com

class NonCopyable {public:    // 禁止拷貝構(gòu)造函數(shù)    NonCopyable(const NonCopyable&) = delete;    // 默認構(gòu)造函數(shù)    NonCopyable() {        // 構(gòu)造函數(shù)的內(nèi)容    }};

通過這種方式,我們防止了對象的拷貝,確保該類的實例無法通過拷貝構(gòu)造函數(shù)進行復(fù)制。Xhz28資訊網(wǎng)——每日最新資訊28at.com

2. 禁止移動構(gòu)造函數(shù) 

同樣,我們也可以使用 = delete 來禁止移動構(gòu)造函數(shù)的使用,從而防止對象的移動語義:Xhz28資訊網(wǎng)——每日最新資訊28at.com

class NonMovable {public:    // 禁止移動構(gòu)造函數(shù)    NonMovable(NonMovable&&) = delete;    // 默認構(gòu)造函數(shù)    NonMovable() {        // 構(gòu)造函數(shù)的內(nèi)容    }};

這種用法確保了對象在實例化后無法通過移動構(gòu)造函數(shù)進行移動操作。Xhz28資訊網(wǎng)——每日最新資訊28at.com

二、= default:顯式請求默認實現(xiàn)

接下來,讓我們轉(zhuǎn)向 = default,這個關(guān)鍵字用于顯式請求編譯器生成默認實現(xiàn)。通常,編譯器會在特殊成員函數(shù)(如默認構(gòu)造函數(shù)、拷貝構(gòu)造函數(shù)等)的缺失時自動生成默認實現(xiàn),但有時我們可能需要顯示地聲明這一請求。Xhz28資訊網(wǎng)——每日最新資訊28at.com

1. 默認構(gòu)造函數(shù)的默認實現(xiàn) 

考慮一個類,我們希望使用默認構(gòu)造函數(shù)來創(chuàng)建對象。通過 = default,我們明確告訴編譯器生成默認的構(gòu)造函數(shù)實現(xiàn):Xhz28資訊網(wǎng)——每日最新資訊28at.com

class DefaultConstructible {public:    // 默認構(gòu)造函數(shù)的默認實現(xiàn)    DefaultConstructible() = default;    // 用戶自定義的拷貝構(gòu)造函數(shù)    DefaultConstructible(const DefaultConstructible& other) {        // 拷貝構(gòu)造函數(shù)的內(nèi)容    }};

在這個例子中,我們顯示地請求編譯器生成默認構(gòu)造函數(shù)的實現(xiàn),同時提供了自定義的拷貝構(gòu)造函數(shù)。Xhz28資訊網(wǎng)——每日最新資訊28at.com

2. 委托構(gòu)造函數(shù) 

= default 也可以用于委托構(gòu)造函數(shù),即一個構(gòu)造函數(shù)調(diào)用同一類的另一個構(gòu)造函數(shù)。這有助于減少代碼重復(fù),提高代碼的可維護性。Xhz28資訊網(wǎng)——每日最新資訊28at.com

class MyClass {public:    // 構(gòu)造函數(shù)的初始化列表    MyClass(int x, double y) : integerMember(x), doubleMember(y) {        // 構(gòu)造函數(shù)的內(nèi)容    }    // 委托構(gòu)造函數(shù)    MyClass(int x) : MyClass(x, 0.0) {}private:    int integerMember;    double doubleMember;};

在上面的例子中,MyClass(int x) 委托了 MyClass(int x, double y) 構(gòu)造函數(shù),實現(xiàn)了代碼的重用。Xhz28資訊網(wǎng)——每日最新資訊28at.com

三、explicit:顯式聲明構(gòu)造函數(shù)

最后,我們來討論 explicit 這個關(guān)鍵字,它用于顯式聲明構(gòu)造函數(shù)。在某些情況下,我們可能不希望發(fā)生隱式類型轉(zhuǎn)換,而是希望確保只有顯式調(diào)用才能進行構(gòu)造。Xhz28資訊網(wǎng)——每日最新資訊28at.com

class ExplicitClass {public:    explicit ExplicitClass(int x) {        // 構(gòu)造函數(shù)的內(nèi)容    }};

在這個例子中,explicit 防止了將 int 隱式轉(zhuǎn)換為 ExplicitClass 類型。只有顯式調(diào)用構(gòu)造函數(shù)才能創(chuàng)建對象,確保了類型轉(zhuǎn)換的明確性。Xhz28資訊網(wǎng)——每日最新資訊28at.com

結(jié)語

總結(jié)一下,C++中的 = delete、= default 和 explicit 這些關(guān)鍵字為我們提供了更多的控制權(quán)和精確性,使得我們能夠更好地定義和管理構(gòu)造函數(shù)的行為。Xhz28資訊網(wǎng)——每日最新資訊28at.com

= delete 可以用于禁止某個函數(shù)的使用,= default 可以顯式請求默認實現(xiàn),而 explicit 可以確保構(gòu)造函數(shù)的顯式調(diào)用。在設(shè)計和實現(xiàn)類的時候,充分利用這些關(guān)鍵字可以使代碼更加健壯、清晰和易于維護。Xhz28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-68340-0.htmlC++中關(guān)于構(gòu)造函數(shù)的幾個關(guān)鍵字

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: Python 變量?對象?引用?賦值?一個例子解釋清楚

下一篇: C++ rand()隨機數(shù)函數(shù)的應(yīng)用

標簽:
  • 熱門焦點
  • 直屏旗艦來了 iQOO 12和K70 Pro同臺競技

    旗艦機基本上使用的都是雙曲面屏幕,這就讓很多喜歡直屏的愛好者在苦等一款直屏旗艦,這次,你們等到了。據(jù)博主數(shù)碼閑聊站帶來的最新爆料稱,Redmi下代旗艦K70 Pro和iQOO 12兩款手
  • 5月iOS設(shè)備性能榜:M1 M2依舊是榜單前五

    和上個月一樣,沒有新品發(fā)布的iOS設(shè)備性能榜的上榜設(shè)備并沒有什么更替,僅僅只有跑分變化而產(chǎn)生的排名變動,剛剛開始的蘋果WWDC2023,推出的產(chǎn)品也依舊是新款Mac Pro、新款Mac Stu
  • 每天一道面試題-CPU偽共享

    前言:了不起:又到了每天一到面試題的時候了!學(xué)弟,最近學(xué)習(xí)的怎么樣啊 了不起學(xué)弟:最近學(xué)習(xí)的還不錯,每天都在學(xué)習(xí),每天都在進步! 了不起:那你最近學(xué)習(xí)的什么呢? 了不起學(xué)弟:最近在學(xué)習(xí)C
  • 破圈是B站頭上的緊箍咒

    來源 | 光子星球撰文 | 吳坤諺編輯 | 吳先之每年的暑期檔都少不了瞄準追劇女孩們的古偶劇集,2021年有優(yōu)酷的《山河令》,2022年有愛奇藝的《蒼蘭訣》,今年卻輪到小破站抓住了追
  • 東方甄選單飛:有些鳥注定是關(guān)不住的

    文/彭寬鴻編輯/羅卿東方甄選創(chuàng)始人俞敏洪帶隊的“7天甘肅行”直播活動已在近日順利收官。成立后一年多時間里,東方甄選要脫離抖音自立門戶的傳聞不絕于耳,“7
  • 小米公益基金會捐贈2500萬元馳援北京、河北暴雨救災(zāi)

    8月2日消息,今日小米科技創(chuàng)始人雷軍在其微博上發(fā)布消息稱,小米公益基金會宣布捐贈2500萬元馳援北京、河北暴雨救災(zāi)。攜手抗災(zāi),京冀安康!以下為公告原文
  • 機構(gòu)稱Q2國內(nèi)智能手機銷量同比下滑4% vivo份額重回第1

    7月29日消息,根據(jù)市場調(diào)查機構(gòu)Counterpoint Research公布的最新報告,2023年第2季度中國智能手機銷量同比下降4%,創(chuàng)新自2014年以來第2季度銷量新低。報
  • iQOO Neo8 Pro真機諜照曝光:天璣9200+和V1+旗艦雙芯加持

    去年10月,iQOO推出了iQOO Neo7系列機型,不僅搭載了天璣9000+,而且是同價位唯一一款天璣9000+直屏旗艦,一經(jīng)上市便受到了用戶的廣泛關(guān)注。在時隔半年后,
  • 聯(lián)想小新Pad Pro 12.6將要推出,搭載高通驍龍 870 處理器

    聯(lián)想小新Pad Pro 12.6將于秋季新品會上推出,官方按照慣例直接在發(fā)布會前給出了機型的所有參數(shù)。聯(lián)想小新 Pad Pro 12.6 將搭載高通驍龍 870 處理器,重量為 5
Top