C++成員函數(shù)
類的成員函數(shù)是指那些把定義和原型寫在類定義內(nèi)部的函數(shù)边篮,就像類定義中的其他變量一樣鸽凶。類成員函數(shù)是類的一個成員,它可以操作類的任意對象齿椅,可以訪問對象中的所有成員琉挖。
函數(shù)的原型必須在類中進行定義,函數(shù)體可以在類中定義涣脚,也可在類的外部定義函數(shù)體示辈,通常把函數(shù)體寫在類的外部,只有在成員函數(shù)很短的時候才寫在類的里面遣蚀。函數(shù)的定義和函數(shù)體都在類外部的時候為全局函數(shù)矾麻。
在類的外部使用范圍解析運算符 :: 定義該函數(shù)
下面以書為例子展示了成員函數(shù)的使用方法:
運行的結(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è)置和獲取公有變量的值
私有(private)成員
私有成員變量或函數(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 成員可以被派生類訪問眯分。
感到有一點兒幫助就給顆小心?吧