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

[C++ ]:5.類和對(duì)象中(運(yùn)算符重載補(bǔ)充)+ 類和對(duì)象下(初始化列表)

這篇具有很好參考價(jià)值的文章主要介紹了[C++ ]:5.類和對(duì)象中(運(yùn)算符重載補(bǔ)充)+ 類和對(duì)象下(初始化列表)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一.運(yùn)算符重載補(bǔ)充:

[C++ ]:5.類和對(duì)象中(運(yùn)算符重載補(bǔ)充)+ 類和對(duì)象下(初始化列表),c++,開發(fā)語言

1.流插入運(yùn)算符:

我們知道進(jìn)行運(yùn)算符重載這個(gè)函數(shù)的參數(shù)的左右類型是非常重要的,我們嘗試在類中去定義這個(gè)流插入重載!

1.考慮到隱含的參數(shù)指針:

[C++ ]:5.類和對(duì)象中(運(yùn)算符重載補(bǔ)充)+ 類和對(duì)象下(初始化列表),c++,開發(fā)語言

2.進(jìn)行優(yōu)化!

我們觀察上面的代碼發(fā)現(xiàn)可以實(shí)現(xiàn)在類中進(jìn)行流插入運(yùn)算符的一個(gè)重載但是我們需要考慮隱含參數(shù)的位置所以我們進(jìn)行傳參的時(shí)候就 寫成了 == d1<<cout ==.

上面這個(gè)語句是非常奇怪的因?yàn)槲覀冎笆褂胏out的時(shí)候把類型的數(shù)據(jù)插入到cout中但是上面這個(gè)就是把cout插入到d1中這是不好的!

[C++ ]:5.類和對(duì)象中(運(yùn)算符重載補(bǔ)充)+ 類和對(duì)象下(初始化列表),c++,開發(fā)語言

沒有人規(guī)定類的操作符必須要寫在類中!
我們把函數(shù)定義到全局中-》出現(xiàn)了一個(gè)問題我們?cè)谌种惺钦也坏匠蓡T變量的!我們成員變量是私有的我們不希望成員變量不去使用成員函數(shù)而發(fā)生改變!

2-1:解決辦法:友元

通過friend 關(guān)鍵字去在類中聲明一個(gè)友元函數(shù)就可以解決,我是你的朋友可以訪問私有的成員變量!

[C++ ]:5.類和對(duì)象中(運(yùn)算符重載補(bǔ)充)+ 類和對(duì)象下(初始化列表),c++,開發(fā)語言

2-2:流插入一定滿足連續(xù)?

我們通過前面的知識(shí)我們知道滿足連續(xù)性這個(gè)函數(shù)就需要一個(gè)返回值!

[C++ ]:5.類和對(duì)象中(運(yùn)算符重載補(bǔ)充)+ 類和對(duì)象下(初始化列表),c++,開發(fā)語言

3.總結(jié):

其他的運(yùn)算符一般是實(shí)現(xiàn)在成員函數(shù)中,但是流插入和流提取操作符是實(shí)現(xiàn)在全局的。

1.因?yàn)榇嬖陔[含的參數(shù)(影響了操作符的順序)。
1-1:寫在全局改變了函數(shù)傳參的順序并且滿足了正常的cout的使用順序!

2.寫到全局訪問不到私有的問題?
2-1:友元解決!

2.流提取運(yùn)算符:

[C++ ]:5.類和對(duì)象中(運(yùn)算符重載補(bǔ)充)+ 類和對(duì)象下(初始化列表),c++,開發(fā)語言
[C++ ]:5.類和對(duì)象中(運(yùn)算符重載補(bǔ)充)+ 類和對(duì)象下(初始化列表),c++,開發(fā)語言
[C++ ]:5.類和對(duì)象中(運(yùn)算符重載補(bǔ)充)+ 類和對(duì)象下(初始化列表),c++,開發(fā)語言

二.const 成員:

1.概念進(jìn)入:

[C++ ]:5.類和對(duì)象中(運(yùn)算符重載補(bǔ)充)+ 類和對(duì)象下(初始化列表),c++,開發(fā)語言

我們觀察上面的代碼會(huì)發(fā)現(xiàn)?
我們定義了一個(gè)const Date 類型的d2是不想要d2這個(gè)日期對(duì)象被修改但是我們的隱含參數(shù)默認(rèn)是一個(gè)Date* 類型,所以參數(shù)列表不匹配!

通過將const修飾的“成員函數(shù)”稱之為const成員函數(shù),const修飾類成員函數(shù),實(shí)際修飾該成員函數(shù)隱含的this指針,表明在該成員函數(shù)中不能對(duì)類的任何成員進(jìn)行修改。

2.具體操作:

[C++ ]:5.類和對(duì)象中(運(yùn)算符重載補(bǔ)充)+ 類和對(duì)象下(初始化列表),c++,開發(fā)語言
[C++ ]:5.類和對(duì)象中(運(yùn)算符重載補(bǔ)充)+ 類和對(duì)象下(初始化列表),c++,開發(fā)語言

需要特別注意成員函數(shù)定義和聲明分開的時(shí)候const都需要加上和缺省參數(shù)不一樣!

3.參數(shù)變化:

[C++ ]:5.類和對(duì)象中(運(yùn)算符重載補(bǔ)充)+ 類和對(duì)象下(初始化列表),c++,開發(fā)語言

3-1:權(quán)限下降!

[C++ ]:5.類和對(duì)象中(運(yùn)算符重載補(bǔ)充)+ 類和對(duì)象下(初始化列表),c++,開發(fā)語言

4.成員函數(shù)const 原則:

1.可以定義成const 的成員函數(shù)都應(yīng)該定義,這樣const 和非const 對(duì)象都可以調(diào)用。
2.如果不去定義const 那么const類型的對(duì)象就不可以去進(jìn)行成員函數(shù)調(diào)用!
3.如果有需要修改成員變量的函數(shù)不可以使用const去修飾!

三.構(gòu)造函數(shù)補(bǔ)充:

1.初始化:

我們之前通過構(gòu)造函數(shù)去初始化成員變量其實(shí)是一種賦值!

雖然上述構(gòu)造函數(shù)調(diào)用之后,對(duì)象中已經(jīng)有了一個(gè)初始值,但是不能將其稱為對(duì)對(duì)象中成員變量的初始化,構(gòu)造函數(shù)體中的語句只能將其稱為賦初值,而不能稱之初始化。因?yàn)槌跏蓟荒艹跏蓟淮?,而?gòu)造函數(shù)體內(nèi)可以多次賦值。

2.初始化列表:

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

[C++ ]:5.類和對(duì)象中(運(yùn)算符重載補(bǔ)充)+ 類和對(duì)象下(初始化列表),c++,開發(fā)語言

3.作用:

1.const的初始化:

[C++ ]:5.類和對(duì)象中(運(yùn)算符重載補(bǔ)充)+ 類和對(duì)象下(初始化列表),c++,開發(fā)語言

2.引用的初始化:

我們知道引用是必須需要初始化,第一次是地址,之后都是賦值!所以我們不可以讓引用類型的成員變量在賦值的時(shí)候再去拿到別的值! 不然會(huì)產(chǎn)生賦值之后的這個(gè)成員變量到底是誰的別名! 通過在初始化列表進(jìn)行初始化我們?cè)偃ベx值我們就知道這個(gè)引用是誰的別名。

[C++ ]:5.類和對(duì)象中(運(yùn)算符重載補(bǔ)充)+ 類和對(duì)象下(初始化列表),c++,開發(fā)語言

3.自定義類型成員的初始化:

[C++ ]:5.類和對(duì)象中(運(yùn)算符重載補(bǔ)充)+ 類和對(duì)象下(初始化列表),c++,開發(fā)語言

我們通過初始化列表就可以自己搞定初始化一個(gè)隊(duì)列!

3-1.自定義類型初始化列表:

通過初始化列表自己去調(diào)用對(duì)應(yīng)的構(gòu)造函數(shù)去完成我們想要多大的棧就可以初始化多大的棧!

[C++ ]:5.類和對(duì)象中(運(yùn)算符重載補(bǔ)充)+ 類和對(duì)象下(初始化列表),c++,開發(fā)語言

3-2.所有都可以使用初始化列表?

我們不能完全舍棄構(gòu)造函數(shù)初始化!因?yàn)閷?duì)于構(gòu)造函數(shù)來說處理?xiàng)?臻g開辟是否成功等比較長(zhǎng)的代碼上是比較有優(yōu)勢(shì)的。初始化列表沒有辦法去判斷棧空間是否開辟成功!

[C++ ]:5.類和對(duì)象中(運(yùn)算符重載補(bǔ)充)+ 類和對(duì)象下(初始化列表),c++,開發(fā)語言

4.初始化列表的順序!

初始化列表要和類的成員變量定義順序相同!
[C++ ]:5.類和對(duì)象中(運(yùn)算符重載補(bǔ)充)+ 類和對(duì)象下(初始化列表),c++,開發(fā)語言

4.總結(jié):

1.引用,const,沒有默認(rèn)構(gòu)造的自定義類型成員!

[C++ ]:5.類和對(duì)象中(運(yùn)算符重載補(bǔ)充)+ 類和對(duì)象下(初始化列表),c++,開發(fā)語言

2.自定義類型的成員有顯示的構(gòu)造函數(shù)!

[C++ ]:5.類和對(duì)象中(運(yùn)算符重載補(bǔ)充)+ 類和對(duì)象下(初始化列表),c++,開發(fā)語言

3.盡量使用初始化列表因?yàn)椴皇褂靡矔?huì)走到初始化列表中!

3-1:

80%----100% 使用初始化列表:
0%-20% 進(jìn)行初始化列表+構(gòu)造函數(shù)的混和使用!文章來源地址http://www.zghlxwxcb.cn/news/detail-739062.html

到了這里,關(guān)于[C++ ]:5.類和對(duì)象中(運(yùn)算符重載補(bǔ)充)+ 類和對(duì)象下(初始化列表)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 【C++】類與對(duì)象(2補(bǔ)充運(yùn)算符重載,const成員)

    作者:愛寫代碼的剛子 時(shí)間:2023.5.11 本篇作為【C++】類與對(duì)象(2)的補(bǔ)充(運(yùn)算符重載、const成員) 賦值運(yùn)算符重載 運(yùn)算符重載 C++為了增強(qiáng)代碼的可讀性引入了運(yùn)算符重載,運(yùn)算符重載是具有特殊函數(shù)名的函數(shù),也具有其返回值類 型,函數(shù)名字以及參數(shù)列表,其返回值類

    2024年02月04日
    瀏覽(58)
  • 【C++初階】五、類和對(duì)象(日期類的完善、流運(yùn)算符重載函數(shù)、const成員、“&”取地址運(yùn)算符重載)

    【C++初階】五、類和對(duì)象(日期類的完善、流運(yùn)算符重載函數(shù)、const成員、“&”取地址運(yùn)算符重載)

    ========================================================================= 相關(guān)代碼gitee自取 : C語言學(xué)習(xí)日記: 加油努力 (gitee.com) ?========================================================================= 接上期 : 【C++初階】四、類和對(duì)象 (構(gòu)造函數(shù)、析構(gòu)函數(shù)、拷貝構(gòu)造函數(shù)、賦值運(yùn)算符重載函數(shù))-CSD

    2024年02月05日
    瀏覽(37)
  • 【C++】類和對(duì)象(中)---拷貝構(gòu)造函數(shù)、賦值運(yùn)算符重載

    【C++】類和對(duì)象(中)---拷貝構(gòu)造函數(shù)、賦值運(yùn)算符重載

    個(gè)人主頁:平行線也會(huì)相交?? 歡迎 點(diǎn)贊?? 收藏? 留言? 加關(guān)注??本文由 平行線也會(huì)相交 原創(chuàng) 收錄于專欄【C++之路】?? 本專欄旨在記錄C++的學(xué)習(xí)路線,望對(duì)大家有所幫助??? 希望我們一起努力、成長(zhǎng),共同進(jìn)步。?? 拷貝構(gòu)造函數(shù),又稱復(fù)制構(gòu)造函數(shù),是一種特殊的

    2024年02月05日
    瀏覽(25)
  • 【C++基礎(chǔ)(六)】類和對(duì)象(中) --拷貝構(gòu)造,運(yùn)算符重載

    【C++基礎(chǔ)(六)】類和對(duì)象(中) --拷貝構(gòu)造,運(yùn)算符重載

    ??博主CSDN主頁:杭電碼農(nóng)-NEO?? ? ?專欄分類:C++初階之路? ? ??代碼倉庫:NEO的學(xué)習(xí)日記?? ? ??關(guān)注我??帶你學(xué)習(xí)C++ ? ???? 本章重點(diǎn): 本篇文章將詳細(xì)講解拷貝構(gòu)造函數(shù) 和運(yùn)算符重載,并介紹const成員的概念 拷貝構(gòu)造函數(shù)和運(yùn)算符重載 是類和對(duì)象中六大默認(rèn)成員函數(shù)

    2024年02月14日
    瀏覽(54)
  • C++ -3- 類和對(duì)象 (中) | 拷貝構(gòu)造函數(shù) & 賦值運(yùn)算符重載

    C++ -3- 類和對(duì)象 (中) | 拷貝構(gòu)造函數(shù) & 賦值運(yùn)算符重載

    示例: 拷貝初始化構(gòu)造函數(shù)的作用是將一個(gè)已知對(duì)象的數(shù)據(jù)成員值拷貝給正在創(chuàng)建的另一個(gè)同類的對(duì)象 無窮遞歸 ? Date(Date d){……} 首先,分析 傳值傳參的過程 傳引用傳參 : 沒有拷貝 的過程,直接傳 傳值傳參: 內(nèi)置類型 編譯器可以直接拷貝(淺拷貝/值拷貝——一個(gè)字節(jié)

    2023年04月19日
    瀏覽(27)
  • 【C++】:類和對(duì)象(中)之拷貝構(gòu)造函數(shù)+賦值運(yùn)算符重載

    【C++】:類和對(duì)象(中)之拷貝構(gòu)造函數(shù)+賦值運(yùn)算符重載

    在現(xiàn)實(shí)生活中,可能存在一個(gè)與你一樣的自己,我們稱其為雙胞胎 那在創(chuàng)建對(duì)象時(shí),可否創(chuàng)建一個(gè)與已存在對(duì)象一某一樣的新對(duì)象呢? 拷貝構(gòu)造函數(shù):只有單個(gè)形參,該形參是對(duì)本類類型對(duì)象的引用(一般常用const修飾),在用已存在的類類型對(duì)象創(chuàng)建新對(duì)象時(shí)由編譯器自動(dòng)調(diào)

    2024年02月06日
    瀏覽(26)
  • 【C++】類和對(duì)象(中)之拷貝構(gòu)造與運(yùn)算符、操作符重載

    【C++】類和對(duì)象(中)之拷貝構(gòu)造與運(yùn)算符、操作符重載

    ?? 樊梓慕: 個(gè)人主頁 ??? 個(gè)人專欄: 《C語言》《數(shù)據(jù)結(jié)構(gòu)》《藍(lán)橋杯試題》《LeetCode刷題筆記》《實(shí)訓(xùn)項(xiàng)目》《C++》 ?? 每一個(gè)不曾起舞的日子,都是對(duì)生命的辜負(fù) 我們繼續(xù)學(xué)習(xí)默認(rèn)成員函數(shù),本篇文章博主帶來的是拷貝構(gòu)造函數(shù)與運(yùn)算符、操作符重載的講解,并且還有

    2024年02月05日
    瀏覽(26)
  • 【C++深入淺出】類和對(duì)象中篇(六種默認(rèn)成員函數(shù)、運(yùn)算符重載)

    【C++深入淺出】類和對(duì)象中篇(六種默認(rèn)成員函數(shù)、運(yùn)算符重載)

    目錄 一. 前言? 二. 默認(rèn)成員函數(shù) 三. 構(gòu)造函數(shù) 3.1 概念 3.2 特性 四. 析構(gòu)函數(shù) 4.1 概念 4.2 特性 五. 拷貝構(gòu)造函數(shù) 5.1 概念 5.2 特性 六. 運(yùn)算符重載 6.1 引入 6.2 概念 6.3 注意事項(xiàng) 6.4 重載示例 6.5 賦值運(yùn)算符重載 6.6 前置++和后置++運(yùn)算符重載 七. const成員函數(shù) 7.1 問題引入 7.2 定義

    2024年02月09日
    瀏覽(100)
  • 【C++】類和對(duì)象③(類的默認(rèn)成員函數(shù):拷貝構(gòu)造函數(shù) | 賦值運(yùn)算符重載)

    【C++】類和對(duì)象③(類的默認(rèn)成員函數(shù):拷貝構(gòu)造函數(shù) | 賦值運(yùn)算符重載)

    ?? 個(gè)人主頁: Forcible Bug Maker ?? 專欄: C++ 目錄 前言 拷貝構(gòu)造函數(shù) 概念 拷貝構(gòu)造函數(shù)的特性及用法 賦值運(yùn)算符重載 運(yùn)算符重載 賦值運(yùn)算符重載 結(jié)語 本篇主要內(nèi)容:類的6個(gè)默認(rèn)成員函數(shù)中的 拷貝構(gòu)造函數(shù) 和 賦值運(yùn)算符重載 在上篇文章中我們講到了類的默認(rèn)成員函數(shù)的

    2024年04月17日
    瀏覽(29)
  • C++ 類和對(duì)象篇(八) const成員函數(shù)和取地址運(yùn)算符重載

    C++ 類和對(duì)象篇(八) const成員函數(shù)和取地址運(yùn)算符重載

    目錄 一、const成員函數(shù) 1. const成員函數(shù)是什么? 2. 為什么有const成員函數(shù)? 3. 什么時(shí)候需要使用const修飾成員函數(shù)?? 二、取地址運(yùn)算符重載 1. 為什么需要重載取地址運(yùn)算符? 2. 默認(rèn)取地址運(yùn)算符重載函數(shù) 3.?默認(rèn)const取地址運(yùn)算符重載函數(shù) 4. 什么時(shí)候要顯示重載取地址運(yùn)算

    2024年02月07日
    瀏覽(27)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包