課程
/后端開發(fā)
/C++
/C++遠征之封裝篇(下)
為什么有的時候只用get ? 有的時候set和get 一起用 請大神幫忙解答一下
2017-10-31
源自:C++遠征之封裝篇(下) 4-7
正在回答
在面相對象的一類語言中set和get稱之為訪問器,同時也稱為屬性,做用是控制成員字段的讀寫(成員字段一般不公開展示)
只有g(shù)et,就只能讀;
只有set,就只能寫;
既有g(shù)et也有set,就是既能讀也能寫;
用c#來舉一個例子來加深對c++的理解吧;
class Dog
{
????private string sex;
????public Sex? ? ? ? ? ? ? ? ? ? ?//在c++中是兩個函數(shù),在c#中是一個函數(shù),實際在編譯成中間語言時也是兩個函數(shù)
????{
????????get{return sex};????//可以讀
????????set
????????????{
????????????if(value==“公”&&value==“母”)? ? ? //可以寫,但判斷是這兩個漢字才寫進去
????????????????{
????????????????????sex=value;? ? ? ? ? ?//value就是調(diào)用函數(shù)傳入的值;
????????????????}
????}
}
好了,可以先看看簡單點的面向?qū)ο笳Z言,在通過c++了解面線對象的中間操作流程
慕神1372049 提問者
public修飾符來修飾的成員函數(shù)或變量,可以被其他的類的函數(shù)或變量來調(diào)用,也可以被自己類里的函數(shù)或變量來調(diào)用。
protected修飾符來修飾的函數(shù)或變量,函數(shù)或變量可以被繼承類調(diào)用,也可以被自己類里的函數(shù)或變量調(diào)用,但不能被其他的類調(diào)用。講集繼承的時候會提到。
用private修飾符來修飾的函數(shù)或變量,就具有更少的權(quán)限了,只能被自己類里的其他函數(shù)或變量調(diào)用,其他的一概不能調(diào)用。
有無set,get取決于你定義private是否需要讀還是寫,或者兩者都要,這個是程序的需求。
舉報
封裝--面向?qū)ο笕筇卣髦?,通過案例讓C++所學知識融會貫通
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學習伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2017-11-01
在面相對象的一類語言中set和get稱之為訪問器,同時也稱為屬性,做用是控制成員字段的讀寫(成員字段一般不公開展示)
只有g(shù)et,就只能讀;
只有set,就只能寫;
既有g(shù)et也有set,就是既能讀也能寫;
用c#來舉一個例子來加深對c++的理解吧;
class Dog
{
????private string sex;
????public Sex? ? ? ? ? ? ? ? ? ? ?//在c++中是兩個函數(shù),在c#中是一個函數(shù),實際在編譯成中間語言時也是兩個函數(shù)
????{
????????get{return sex};????//可以讀
????????set
????????????{
????????????if(value==“公”&&value==“母”)? ? ? //可以寫,但判斷是這兩個漢字才寫進去
????????????????{
????????????????????sex=value;? ? ? ? ? ?//value就是調(diào)用函數(shù)傳入的值;
????????????????}
????}
}
好了,可以先看看簡單點的面向?qū)ο笳Z言,在通過c++了解面線對象的中間操作流程
2018-10-12
public修飾符來修飾的成員函數(shù)或變量,可以被其他的類的函數(shù)或變量來調(diào)用,也可以被自己類里的函數(shù)或變量來調(diào)用。
protected修飾符來修飾的函數(shù)或變量,函數(shù)或變量可以被繼承類調(diào)用,也可以被自己類里的函數(shù)或變量調(diào)用,但不能被其他的類調(diào)用。講集繼承的時候會提到。
用private修飾符來修飾的函數(shù)或變量,就具有更少的權(quán)限了,只能被自己類里的其他函數(shù)或變量調(diào)用,其他的一概不能調(diào)用。
有無set,get取決于你定義private是否需要讀還是寫,或者兩者都要,這個是程序的需求。