最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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)遵守國家法律
陈巴尔虎旗| 玉田县| 三亚市| 齐河县| 竹溪县| 延寿县| 宝应县| 鹤壁市| 金湖县| 拉孜县| 长兴县| 印江| 嘉善县| 饶河县| 宝山区| 延边| 拜城县| 紫阳县| 丰台区| 祁阳县| 含山县| 济宁市| 东海县| 岳普湖县| 航空| 寿光市| 敦煌市| 威宁| 苍梧县| 商城县| 辽宁省| 东光县| 滦南县| 芮城县| 淮安市| 新泰市| 吉木乃县| 特克斯县| 克拉玛依市| 太仆寺旗| 古田县|