類&對象(一)

C++成員函數(shù)

類的成員函數(shù)是指那些把定義和原型寫在類定義內(nèi)部的函數(shù),就像類定義中的其他變量一樣。類成員函數(shù)是類的一個成員,它可以操作類的任意對象,可以訪問對象中的所有成員。

函數(shù)的原型必須在類中進行定義,函數(shù)體可以在類中定義,也可在類的外部定義函數(shù)體,通常把函數(shù)體寫在類的外部,只有在成員函數(shù)很短的時候才寫在類的里面。函數(shù)的定義和函數(shù)體都在類外部的時候為全局函數(shù)。

在類的外部使用范圍解析運算符 :: 定義該函數(shù)

下面以書為例子展示了成員函數(shù)的使用方法:

成員函數(shù)的使用方法


對成員函數(shù)的調(diào)用

運行的結(jié)果為:


30? 35? 這兩本書是同一本書


小貼士:當一個函數(shù)對數(shù)據(jù)沒有修改,不做變化的時候,使用const修飾函數(shù)使其成為常量成員函數(shù),具有更高的保險系數(shù)。

類訪問修飾符(public、private、protected)

數(shù)據(jù)封裝是面向?qū)ο缶幊痰囊粋€重要特點,它防止函數(shù)直接訪問類類型的內(nèi)部成員。

類成員的訪問限制是通過在類主體內(nèi)部對各個區(qū)域標記 public、private、protected 來指定的。關(guān)鍵字 public、private、protected 稱為訪問修飾符。

一個類可以有多個 public、protected 或 private 標記區(qū)域。每個標記區(qū)域在下一個標記區(qū)域開始之前或者在遇到類主體結(jié)束右括號之前都是有效的。

成員和類的默認訪問修飾符是 private

公有(public)成員

可以不使用任何成員函數(shù)來設(shè)置和獲取公有變量的值

可以不使用任何成員函數(shù)來設(shè)置和獲取公有變量的值

私有(private)成員

私有成員變量或函數(shù)在類的外部是不可訪問的,甚至是不可查看的。只有類和友元函數(shù)可以訪問私有成員。

私有成員變量
必須使用任何成員函數(shù)來設(shè)置和獲取公有變量的值

保護(protected)成員

保護成員變量或函數(shù)與私有成員十分相似,但有一點不同,保護成員在派生類(即子類)中是可訪問的。后面的繼承會看到

繼承中的特點

有public, protected, private三種繼承方式,它們相應(yīng)地改變了基類成員的訪問屬性。

繼承方式特點

1.public 繼承:基類 public 成員,protected 成員,private 成員的訪問屬性在派生類中分別變成:public, protected, private

2.protected 繼承:基類 public 成員,protected 成員,private 成員的訪問屬性在派生類中分別變成:protected, protected, private

3.private 繼承:基類 public 成員,protected 成員,private 成員的訪問屬性在派生類中分別變成:private, private, private

不管是哪一種繼承方式,在派生類內(nèi)都可以訪問基類的非私有成員,基類的私有成員雖然被繼承了,但是并不是可見的。而對于保護和私有繼承方式,類外對象并不能訪問基類的成員,公有繼承方式下可以訪問基類的公有成員。

但無論哪種繼承方式,上面兩點都沒有改變:

1.private 成員只能被本類成員(類內(nèi))和友元訪問,不能被派生類訪問;

2.protected 成員可以被派生類訪問。

感到有一點兒幫助就給顆小心?吧

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容