国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

再探C++——默認(rèn)成員函數(shù)

這篇具有很好參考價值的文章主要介紹了再探C++——默認(rèn)成員函數(shù)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

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

二、析構(gòu)函數(shù)

三、賦值運算符

四、拷貝構(gòu)造


如果一個類中沒有成員,我們稱為空類。空類,也存在6個默認(rèn)的類成員函數(shù)。

默認(rèn)成員函數(shù):用戶不顯示地寫,編譯器會默認(rèn)生成的函數(shù)叫做默認(rèn)成員函數(shù)。

6個默認(rèn)成員函數(shù):
構(gòu)造函數(shù):完成對象初始化? ? ? ? ? ? ? ?析構(gòu)函數(shù):完成對象清理

拷貝構(gòu)造:用同類對象構(gòu)造新類? ? ? ? 賦值重載:把一個對象賦給另一個對象

取地址重載:很少涉及

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

在C語言中,一個數(shù)據(jù)結(jié)構(gòu)的模擬首先要完成初始化,就拿棧舉例子:

初始化要確定top,確定開辟的空間,和數(shù)組的初始容量。如果沒有完成這一初始化會出現(xiàn)諸多問題,為了防止遺忘類的初始化,引入構(gòu)造函數(shù)。

在類的創(chuàng)建時,自動調(diào)用,用來進(jìn)行初始化。

1.特性:

1)名稱與類名相同,沒有返回值。

2)不是開空間創(chuàng)建對象,是在實例化后自動調(diào)用。

3)可以重載

拿日期類舉例子

.構(gòu)造函數(shù)可以是重載???重載要注意二義性

再探C++——默認(rèn)成員函數(shù),C++,c++,開發(fā)語言

.關(guān)于重載的調(diào)用

再探C++——默認(rèn)成員函數(shù),C++,c++,開發(fā)語言

在調(diào)用無參構(gòu)造函數(shù)時 不可寫成? Date d1();否則編譯器將認(rèn)為這是一個函數(shù)聲明。

.在函數(shù)重載中給缺省值

關(guān)于帶參函數(shù)給全缺省,那么它與無參構(gòu)造函數(shù)都為默認(rèn)構(gòu)造函數(shù),不需要用戶顯示調(diào)用,編譯器就能初始化。

默認(rèn)構(gòu)造函數(shù)只能出現(xiàn)一個,全缺省不能與無參構(gòu)造函數(shù)同時出現(xiàn)。

?在類中既有無參構(gòu)造函數(shù)和全缺省構(gòu)造函數(shù),編譯器能通過編譯 但在創(chuàng)建對象時會出現(xiàn)二義性,不知道調(diào)用哪個函數(shù),會出錯。

5)編譯器會生成默認(rèn)的構(gòu)造函數(shù)

如果用戶沒有自己顯示的實現(xiàn)一個構(gòu)造函數(shù),那么編譯器會生成一個無參的默認(rèn)構(gòu)造函數(shù)。

編譯器生成的默認(rèn)構(gòu)造函數(shù)特點:

內(nèi)置類型初始化為隨機值,自定義類型會調(diào)用其的構(gòu)造函數(shù)。

再探C++——默認(rèn)成員函數(shù),C++,c++,開發(fā)語言

?類B的默認(rèn)構(gòu)造函數(shù)在初始化時aa時,會調(diào)用A的構(gòu)造函數(shù),而b初始化為隨機值。

6)初始化列表

再探C++——默認(rèn)成員函數(shù),C++,c++,開發(fā)語言

?對于引用和const類型的對象,在定義時必須進(jìn)行初始化,而構(gòu)造函數(shù)的函數(shù)體為賦值語句,無法進(jìn)行初始化;

因此引入初始化列表,在對象創(chuàng)建時即完成初始化工作。

初始化列表:以一個冒號開始,接著是一個以逗號分隔的數(shù)據(jù)成員列表,每個"成員變量"后面跟
一個放在括號中的初始值或表達(dá)式

再探C++——默認(rèn)成員函數(shù),C++,c++,開發(fā)語言

?注意:

每個成員在初始化列表只能出現(xiàn)一次

引用和常對象,需要傳參的自定義類型必須在初始化列表中初始化;

初始化列表的初始化順序只與類對象聲明順序有關(guān);

二、析構(gòu)函數(shù)

在一個類對象結(jié)束,要進(jìn)行動態(tài)內(nèi)存的釋放。為了防止用戶遺忘,引入析構(gòu)函數(shù),在對象生命周期結(jié)束時,自動調(diào)用,完成對象的內(nèi)存清理工作。

再探C++——默認(rèn)成員函數(shù),C++,c++,開發(fā)語言

?特性:
1)函數(shù)名為 類名前加~? (表示與構(gòu)造函數(shù)相對)

2)沒有參數(shù) ,沒有返回值

3)編譯器會生成默認(rèn)構(gòu)造函數(shù)
與構(gòu)造函數(shù)一樣,用戶沒有顯示寫析構(gòu)函數(shù)時,編譯器會自動生成析構(gòu)函數(shù)

內(nèi)置類型不做回收,自定義類型調(diào)用的析構(gòu)函數(shù)。

4)調(diào)用順序類似棧結(jié)構(gòu),創(chuàng)建的類,調(diào)用析構(gòu)函數(shù)。

三、賦值運算符

C++為了增強代碼的可讀性,引入賦值運算符=

賦值運算是針對倆個已經(jīng)存在的類;

關(guān)鍵字:operator =? 有函數(shù)參數(shù)和返回值

再探C++——默認(rèn)成員函數(shù),C++,c++,開發(fā)語言

?

特性:

1)在用戶不顯示寫時,編譯器會生成默認(rèn)賦值運算符,其的特點是淺拷貝

淺拷貝:將目標(biāo)一個字節(jié)一個字節(jié)的拷貝給目的地

涉及一塊空間的拷貝不能用淺拷貝:同一塊空間不能連續(xù)釋放兩次;因此用戶自定義賦值運算符重載就非常有必要。

2)返回值是T&,減少傳值的拷貝,可以連續(xù)拷貝? ?

? ? ?參數(shù)類型const T&? 防止被錯誤修改

3)隱藏第一個參數(shù)this指針? ,檢查拷貝的來源是否為自己

3)不可重載為全局函數(shù)

全局函數(shù)沒有this指針,需要傳所有參數(shù)

四、拷貝構(gòu)造

將已經(jīng)存在的類,拷貝給一個新類;

其是構(gòu)造函數(shù)的一個重載

再探C++——默認(rèn)成員函數(shù),C++,c++,開發(fā)語言

?在傳參時必須用引用接收參數(shù);

否則 不帶引用;會發(fā)生無限遞歸

要拷貝構(gòu)造就要傳參? 傳參就要調(diào)用拷貝構(gòu)造? 調(diào)用拷貝構(gòu)造就要傳參 ..........會發(fā)生無限遞歸

1)用戶不顯示寫時,編譯器會產(chǎn)生默認(rèn)拷貝構(gòu)造函數(shù),是淺拷貝;

在涉及動態(tài)空間時,必須顯示實現(xiàn)一個拷貝構(gòu)造函數(shù),否則會發(fā)生同一塊空間釋放倆次;

2)對象返回時,能返回引用,盡量返回引用,提高效率;

區(qū)別拷貝構(gòu)造和賦值的調(diào)用

再探C++——默認(rèn)成員函數(shù),C++,c++,開發(fā)語言

?拷貝構(gòu)造是一個存在的類對象,賦值是倆個類都存在;

———————————————————————————————————————————

本期的C++默認(rèn)成員函數(shù)的介紹就到這。還有倆個默認(rèn)的成員函數(shù),但是基本上用不到 ,就不做介紹,對于構(gòu)造函數(shù)是重要的一項,希望本文對大家有所幫助!文章來源地址http://www.zghlxwxcb.cn/news/detail-625719.html

到了這里,關(guān)于再探C++——默認(rèn)成員函數(shù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • C++:類的六個默認(rèn)成員函數(shù)

    C++:類的六個默認(rèn)成員函數(shù)

    個人主頁 : 個人主頁 個人專欄 : 《數(shù)據(jù)結(jié)構(gòu)》 《C語言》《C++》 本篇博客作為C++知識總結(jié),我們來認(rèn)識類的六個默認(rèn)成員函數(shù)。 下面我主要以日期類作為示例顯示。 構(gòu)造函數(shù) 是一個特殊的成員函數(shù),名字與類名相同,創(chuàng)建類類型對象時(實例化類)由編譯器自動調(diào)用,以保

    2024年02月08日
    瀏覽(18)
  • C++中類的6個默認(rèn)成員函數(shù) 【拷貝構(gòu)造函數(shù)】

    C++中類的6個默認(rèn)成員函數(shù) 【拷貝構(gòu)造函數(shù)】

    在前幾章學(xué)習(xí)對象的時候,我們有的時候需要一個與已存在對象一某一樣的新對象 那在創(chuàng)建對象時,可否創(chuàng)建一個與已存在對象一某一樣的新對象呢? 拷貝構(gòu)造函數(shù):只有單個形參,該形參是對本類類型對象的引用(一般常用const修飾),在用已存在的類類型對象創(chuàng)建新對象時

    2024年02月20日
    瀏覽(25)
  • C++ ------類和對象詳解六大默認(rèn)成員函數(shù)

    C++ ------類和對象詳解六大默認(rèn)成員函數(shù)

    如果我們定義一個類,然后這個類中什么也沒有。那么這里的類就什么也沒有嗎?其實不然,任何類在里面什么都不寫時,編譯器都會生成6個默認(rèn)成員函數(shù)。 用戶沒有顯式實現(xiàn),編譯器會生成的成員函數(shù)稱為默認(rèn)成員函數(shù)。 六個默認(rèn)成員函數(shù) 我們來看一個Date類 觀察上述代

    2024年02月15日
    瀏覽(28)
  • 【C++】類和對象(中篇)----->六大默認(rèn)成員函數(shù)

    【C++】類和對象(中篇)----->六大默認(rèn)成員函數(shù)

    目錄 一、類的6個默認(rèn)成員函數(shù) 二、構(gòu)造函數(shù) ?1、概念? ?2、特性 三、析構(gòu)函數(shù) ?1、概念 ?2、特性 四、拷貝構(gòu)造函數(shù) ?1、概念 ?2、特征 五、賦值運算符重載 ?1、運算符重載 ?2、值運算符重載 ? ?2.1?賦值運算符重載格式 ? ?2.2?賦值運算符只能重載成類的成員函數(shù)不能

    2024年02月12日
    瀏覽(26)
  • 【C++干貨基地】六大默認(rèn)成員函數(shù): This指針 | 構(gòu)造函數(shù) | 析構(gòu)函數(shù)

    【C++干貨基地】六大默認(rèn)成員函數(shù): This指針 | 構(gòu)造函數(shù) | 析構(gòu)函數(shù)

    ?? 鴿芷咕 :個人主頁 ??? 個人專欄 : 《C++干貨基地》《粉絲福利》 ??生活的理想,就是為了理想的生活! ??哈嘍各位鐵汁們好啊,我是博主鴿芷咕《C++干貨基地》是由我的襄陽家鄉(xiāng)零食基地有感而發(fā),不知道各位的城市有沒有這種實惠又全面的零食基地呢?C++ 本身作

    2024年03月11日
    瀏覽(20)
  • 【C++】類和對象②(類的默認(rèn)成員函數(shù):構(gòu)造函數(shù) | 析構(gòu)函數(shù))

    【C++】類和對象②(類的默認(rèn)成員函數(shù):構(gòu)造函數(shù) | 析構(gòu)函數(shù))

    ?? 個人主頁: Forcible Bug Maker ?? 專欄: C++ 目錄 前言 類的6個默認(rèn)成員函數(shù) 構(gòu)造函數(shù) 概念 構(gòu)造函數(shù)的特性及用法 析構(gòu)函數(shù) 概念 析構(gòu)函數(shù)的特性及用法 結(jié)語 本篇主要內(nèi)容:類的6個默認(rèn)成員函數(shù)中的 構(gòu)造函數(shù) 和 析構(gòu)函數(shù) 進(jìn)入到類和對象內(nèi)容的第二節(jié),上篇博客中介紹了

    2024年04月16日
    瀏覽(37)
  • ?【C++要笑著學(xué)】(7) 默認(rèn)成員函數(shù):構(gòu)造函數(shù) | 析構(gòu)函數(shù) | 拷貝構(gòu)造函數(shù)

    ?【C++要笑著學(xué)】(7) 默認(rèn)成員函數(shù):構(gòu)造函數(shù) | 析構(gòu)函數(shù) | 拷貝構(gòu)造函數(shù)

    ?? 訂閱量破千的火熱 C++ 教程 ?? 火速訂閱 《C++要笑著學(xué)》? ??? CSDN 累計訂閱量破千的火爆 C/C++ 教程的 2023 重制版,C 語言入門到實踐的精品級趣味教程。 了解更多: ?? ?\\\"不太正經(jīng)\\\" 的專欄介紹? ← 試讀第一章 訂閱鏈接: ?? 《C語言趣味教程》?← 猛戳訂閱! ? 本篇

    2024年02月07日
    瀏覽(39)
  • C++從入門到精通——類的6個默認(rèn)成員函數(shù)之拷貝構(gòu)造函數(shù)

    C++從入門到精通——類的6個默認(rèn)成員函數(shù)之拷貝構(gòu)造函數(shù)

    類的6個默認(rèn)成員函數(shù):如果一個類中什么成員都沒有,簡稱為空類。 空類中真的什么都沒有嗎?并不是,任何類在什么都不寫時,編譯器會自動生成以下6個默認(rèn)成員函數(shù)。 默認(rèn)成員函數(shù):用戶沒有顯式實現(xiàn),編譯器會生成的成員函數(shù)稱為默認(rèn)成員函數(shù)。 在現(xiàn)實生活中,可

    2024年04月26日
    瀏覽(22)
  • 【C++類和對象】類有哪些默認(rèn)成員函數(shù)呢?(下)

    【C++類和對象】類有哪些默認(rèn)成員函數(shù)呢?(下)

    ヾ(????)?\\\" 人總要為過去的懶惰而付出代價 ヾ(????)?\\\" 如果一個類中什么成員都沒有,簡稱為空類。 空類中并不是什么都沒有,任何類在什么都不寫時,編譯器會自動生成以下6個默認(rèn)成員函數(shù)。 ???????? 默認(rèn)成員函數(shù):用戶沒有顯式實現(xiàn),編譯器會生成

    2024年02月12日
    瀏覽(33)
  • [C++]默認(rèn)成員函數(shù)等——喵喵要吃C嘎嘎3

    [C++]默認(rèn)成員函數(shù)等——喵喵要吃C嘎嘎3

    希望你開心,希望你健康,希望你幸福,希望你點贊! 最后的最后,關(guān)注喵,關(guān)注喵,關(guān)注喵,大大會看到更多有趣的博客哦!??! 喵喵喵,你對我真的很重要! 目錄 前言 類的實例化 類對象模型 如何計算類對象的大小 類對象的存儲方式猜測 this指針 C語言和C++實現(xiàn)Stack的

    2024年02月05日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包