C++類的六個(gè)默認(rèn)成員函數(shù)(下篇)-創(chuàng)新互聯(lián)

目錄

目前累計(jì)服務(wù)客戶1000+,積累了豐富的產(chǎn)品開發(fā)及服務(wù)經(jīng)驗(yàn)。以網(wǎng)站設(shè)計(jì)水平和技術(shù)實(shí)力,樹立企業(yè)形象,為客戶提供網(wǎng)站制作、成都網(wǎng)站制作、網(wǎng)站策劃、網(wǎng)頁設(shè)計(jì)、網(wǎng)絡(luò)營銷、VI設(shè)計(jì)、網(wǎng)站改版、漏洞修補(bǔ)等服務(wù)。創(chuàng)新互聯(lián)建站始終以務(wù)實(shí)、誠信為根本,不斷創(chuàng)新和提高建站品質(zhì),通過對領(lǐng)先技術(shù)的掌握、對創(chuàng)意設(shè)計(jì)的研究、對客戶形象的視覺傳遞、對應(yīng)用系統(tǒng)的結(jié)合,為客戶提供更好的一站式互聯(lián)網(wǎng)解決方案,攜手廣大客戶,共同發(fā)展進(jìn)步。

一:拷貝構(gòu)造函數(shù)

二:運(yùn)算符重載

1.賦值運(yùn)算符重載

1.1?賦值運(yùn)算符重載格式

1.2?賦值運(yùn)算符只能重載成類的成員函數(shù)不能重載成全局函數(shù)

1.3.用戶沒有顯式實(shí)現(xiàn)時(shí),編譯器會(huì)生成一個(gè)默認(rèn)賦值運(yùn)算符重載,以值的方式逐字節(jié)拷貝。

三.const成員


一:拷貝構(gòu)造函數(shù) 定義:只有單個(gè)形參 ,該形參是對本 類類型對象的引用 ( 一般常用 const 修飾 ) ,在用 已存 在的類類型對象創(chuàng)建新對象時(shí)由編譯器自動(dòng)調(diào)用 。

特征:

1.它是構(gòu)造函數(shù)得一個(gè)重載形式

2.參數(shù)只有一個(gè)且必須是類類型對象的引用,使用傳值方式編譯器直接報(bào)錯(cuò),因?yàn)闀?huì)引發(fā)無窮遞歸調(diào)用。

3. 若未顯式定義,編譯器會(huì)生成默認(rèn)的拷貝構(gòu)造函數(shù)。 默認(rèn)的拷貝構(gòu)造函數(shù)對象按內(nèi)存存儲(chǔ)按 字節(jié)序完成拷貝,這種拷貝叫做淺拷貝,或者值拷貝。

(注意:在編譯器生成的默認(rèn)拷貝構(gòu)造函數(shù)中,內(nèi)置類型是按照字節(jié)方式直接拷貝的,而自定 義類型是調(diào)用其拷貝構(gòu)造函數(shù)完成拷貝的。)

總結(jié):需要寫析構(gòu)函數(shù)的類,都需要寫深拷貝。 ? ? ? ? ? 不需要寫析構(gòu)函數(shù)的類,默認(rèn)拷貝就可以 注:為了提高程序效率,一般對象傳參時(shí),盡量使用引用類型,返回時(shí)根據(jù)實(shí)際場景,能用引用 盡量使用引用。 二:運(yùn)算符重載 函數(shù)名字為:關(guān)鍵字 operator 后面接需要重載的運(yùn)算符符號 。 函數(shù)原型: 返回值類型 ?operator 操作符 ( 參數(shù)列表 ) 注意:
不能通過連接其他符號來創(chuàng)建新的操作符:比如 operator@ 重載操作符必須有一個(gè)類類型參數(shù) 用于內(nèi)置類型的運(yùn)算符,其含義不能改變,例如:內(nèi)置的整型 + ,不 能改變其含義 作為類成員函數(shù)重載時(shí),其形參看起來比操作數(shù)數(shù)目少 1 ,因?yàn)槌蓡T函數(shù)的第一個(gè)參數(shù)為隱 藏的 this
.*? ? ? ?::? ? ? ? sizeof? ? ? ?:? ? ? ? . 注意以上5個(gè)運(yùn)算符不能重載。 1.賦值運(yùn)算符重載
1.1?賦值運(yùn)算符重載格式 參數(shù)類型 : const T& ,傳遞引用可以提高傳參效率 返回值類型 : T& ,返回引用可以提高返回的效率,有返回值目的是為了支持連續(xù)賦值 檢測是否自己給自己賦值 返回 *this :要復(fù)合連續(xù)賦值的含義
1.2?賦值運(yùn)算符只能重載成類的成員函數(shù)不能重載成全局函數(shù) 原因:賦值運(yùn)算符如果不顯式實(shí)現(xiàn),編譯器會(huì)生成一個(gè)默認(rèn)的。此時(shí)用戶再在類外自己實(shí)現(xiàn) 一個(gè)全局的賦值運(yùn)算符重載,就和編譯器在類中生成的默認(rèn)賦值運(yùn)算符重載沖突了,故賦值 運(yùn)算符重載只能是類的成員函數(shù)。

1.3.用戶沒有顯式實(shí)現(xiàn)時(shí),編譯器會(huì)生成一個(gè)默認(rèn)賦值運(yùn)算符重載,以值的方式逐字節(jié)拷貝。 注意:內(nèi)置類型成員變量是直接賦值的,而自定義類型成員變量需要調(diào)用對應(yīng)類的賦值運(yùn)算符 重載完成賦值。
三.const成員 將 const 修飾的 “ 成員函數(shù) ” 稱之為 const 成員函數(shù) , const 修飾類成員函數(shù),實(shí)際修飾該成員函數(shù) 隱含的 this 指針 ,表明在該成員函數(shù)中 不能對類的任何成員進(jìn)行修改。
四.取地址及const取地址操作符重載 這兩個(gè)默認(rèn)成員函數(shù)一般不用重新定義 ,編譯器默認(rèn)會(huì)生成。

這兩個(gè)運(yùn)算符一般不需要重載,使用編譯器生成的默認(rèn)取地址的重載即可,只有特殊情況,才需要重載,比如想讓別人獲取到指定的內(nèi)容!
由于疫情原因,更新間隔時(shí)間較長?。。?p>你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

名稱欄目:C++類的六個(gè)默認(rèn)成員函數(shù)(下篇)-創(chuàng)新互聯(lián)
網(wǎng)站地址:http://bm7419.com/article38/iiisp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)手機(jī)網(wǎng)站建設(shè)、網(wǎng)站排名網(wǎng)站設(shè)計(jì)、微信公眾號、網(wǎng)站收錄

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)