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

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

C++ 訪問控制與封裝

2023-04-12 22:23 作者:S-a-i_  | 我要投稿

目前我們實(shí)現(xiàn)了定義類的接口,但是還沒有任何機(jī)制強(qiáng)制用戶使用這些接口,我們的類還沒有封裝,也就是說用戶可以直達(dá)Sales_data對(duì)象的內(nèi)部,并且控制它的具體實(shí)現(xiàn),在C++中,我們使用訪問說明符加強(qiáng)類的封裝性

定義在public說明符后的成員在整個(gè)程序可以被訪問,public成員定義類的接口

定義在private說明符之后的成員可以被類的成員函數(shù)訪問,但是不能被使用該類的代碼訪問,private部分封裝了(隱藏了)類的實(shí)現(xiàn)細(xì)節(jié)

作為接口的一部分,構(gòu)造函數(shù)和部分成員函數(shù)緊跟在public說明符之后,而數(shù)據(jù)成員和作為實(shí)現(xiàn)部分的函數(shù)則跟在private說明符之后。

一個(gè)類對(duì)訪問說明符的數(shù)量沒有限制,其有效范圍直到下一個(gè)說明符出現(xiàn)或者類的結(jié)尾為止。


使用class或struct關(guān)鍵字

在上面定義中我們使用了class而非struct這種變化僅僅是形式上有所不同,這兩個(gè)定義唯一的區(qū)別就是默認(rèn)訪問權(quán)限不同。

類可以在他的第一個(gè)訪問說明符之前定義成員,對(duì)這種成員的訪問權(quán)限依賴于類定義的方式,如果我們使用struct則第一個(gè)訪問說明符之前的成員時(shí)public相反如果時(shí)class,那么就是private。


友元

既然Sales_data的數(shù)據(jù)成員是private的,我們的read、print和add函數(shù)也就無法正常編譯了,盡管這個(gè)幾個(gè)函數(shù)是類的接口的一部分,但是他們不是類的成員。

類可以允許其他類或函數(shù)訪問它的非公有成員,方法是令其他類或者函數(shù)成為他的友元,如果想把一個(gè)函數(shù)作為他的友元,只需要增加一條以friend關(guān)鍵字開始的函數(shù)聲明語句即可。

友元只能出現(xiàn)在類定義的內(nèi)部,具體位置不限,友元不是類的成員也不受他所在區(qū)域訪問控制級(jí)別的約束。我們一般集中聲明友元。


關(guān)鍵概念:封裝的益處

封裝有兩個(gè)重要優(yōu)點(diǎn)

1 確保用戶代碼不會(huì)無意間破壞封裝對(duì)象的狀態(tài)

2 被封裝的類的具體實(shí)現(xiàn)細(xì)節(jié)可以隨時(shí)改變,而無需調(diào)整用戶級(jí)別的代碼


友元的聲明

友元的聲明僅僅只定了訪問的權(quán)限,而非一個(gè)通常意義上的函數(shù)聲明,如果我們希望類的用戶能夠調(diào)用某個(gè)友元函數(shù),那么我們就必須在友元聲明之外再次對(duì)函數(shù)進(jìn)行一次聲明,為了是友元對(duì)類的用戶可見,我們通常把友元的聲明和類本身放置在同一個(gè)頭文件中,因此我們的Sales_data頭文件應(yīng)該為read、print和add提供獨(dú)立的聲明。

C++ 訪問控制與封裝的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
南江县| 榕江县| 富裕县| 科技| 都匀市| 南陵县| 武穴市| 合作市| 藁城市| 都江堰市| 郁南县| 南丰县| 阳谷县| 绥化市| 甘南县| 西乌珠穆沁旗| 墨玉县| 蓬莱市| 三门县| 新沂市| 偏关县| 东方市| 繁峙县| 阿拉善右旗| 北宁市| 重庆市| 阿拉善盟| 麻江县| 密云县| 峡江县| 天祝| 明光市| 临汾市| 新密市| 靖边县| 根河市| 苍山县| 永福县| 莎车县| 巴林左旗| 临颍县|