最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

舉例分析private的作用(c/c++學(xué)習(xí))

 更新時(shí)間:2020年08月19日 23:43:34   作者:藍(lán)莓派Alex  
我知道我們可以用 public 中的值,把private中的數(shù)據(jù)給提出來,但是還是搞不懂private該怎么用,或者說在一個(gè)具體程序中,private有什么用

c++中private的用處

我知道我們可以用 public 中的值,把private中的數(shù)據(jù)給提出來,但是還是搞不懂private該怎么用,或者說在一個(gè)具體程序中,private有什么用。

class fun{
public:
  void setname(string x)
{
  name =x;
}
string getname()
{
  return name;
}
private:
  string name;
};
/*主函數(shù)*/
int main()
{
fun ob;
ob.setname("you are apples");
cout << ob.getname() <<endl;

system("pause");
return 0;
}

作用說明:

【way 1】

這是面向?qū)ο缶幊讨械臇|西。

首先你要有一個(gè)類的概念,如果沒有類的概念,就不會(huì)知道為什么需要private、protected和public。

類首先是一種抽象,是一個(gè)定義。比如說人類就是一個(gè)抽象的定義,具體到我們每個(gè)人就是這個(gè)類的對(duì)象。雖然你我都屬于人類,但可能我們姓名不同,性別不同,年齡也不同,因此類需要有屬性。除了屬性,類還需要有方法,類的方法是這個(gè)類對(duì)外所提供的交互接口。例如人類可以對(duì)外提供走路、說話、吃飯等方法。類的屬性通常會(huì)聲明為private,也就是私有的,然后提供一個(gè)公有的方法來訪問它。你不理解的其實(shí)就是這里,不知道為何要“多此一舉”,直接將屬性聲明為public,直接訪問不就可以了嗎?

其實(shí),從程序編譯的角度來講這么做是沒有問題的,只是,從面向?qū)ο蟮慕嵌葋碇v,有三個(gè)重要的概念,分別是封裝、繼承和多態(tài)。如果將類的屬性直接以public的形式對(duì)外暴露,實(shí)際上就喪失了封裝性。什么是封裝?封裝就是讓內(nèi)部細(xì)節(jié)對(duì)外不可見。類的一個(gè)設(shè)計(jì)原則就是,不要把自己的內(nèi)部實(shí)現(xiàn)細(xì)節(jié)對(duì)外暴露,只對(duì)外提供一個(gè)功能接口,也就是公有的方法,至于類這個(gè)方法里面具體是怎么實(shí)現(xiàn)的,外部不需要知道也不應(yīng)該知道。就以你代碼里setname這個(gè)方法為例,一個(gè)完整的名字應(yīng)該包括姓和名。假如說你規(guī)定姓在前名在后,中間用一個(gè)空格來分割。那么如果使用setname方法,你就可以在setname時(shí)對(duì)外部輸入的名字進(jìn)行檢查,看看中間是不是有個(gè)空格,如果沒有的話可能需要返回一個(gè)設(shè)置失敗

。另外,類的內(nèi)部,可能是使用一個(gè)string類型的變量name來直接保存姓和名,也可以定義2個(gè)string變量,一個(gè)用來保存姓一個(gè)用來保存名,可以在setname方法中將用戶的輸入以空格拆開,分別填到這2個(gè)變量里??梢姡鸵粋€(gè)簡單的setname,其實(shí)你類的內(nèi)部,可以用不同的方法來實(shí)現(xiàn)。但是這種實(shí)現(xiàn)的差異,對(duì)于類的使用者來說是不關(guān)系的,類的使用者只需要知道它可以調(diào)用setname來設(shè)置名字就可以了,而無需關(guān)心你這個(gè)類里面究竟是用一個(gè)string對(duì)象還是兩個(gè)string對(duì)象來保存名字。這其實(shí)就是一個(gè)封裝。如果你直接以public類型對(duì)外提供名字屬性,你實(shí)際上就喪失了封裝性,因?yàn)槟惆褍?nèi)部的實(shí)現(xiàn)細(xì)節(jié)暴露給了外部。

相信,你應(yīng)該明白了很多。

【way 2】

簡單來說就是編寫大工程的時(shí)候有用,剛學(xué)c++的人會(huì)很迷惑,因?yàn)槟阌貌坏?,而且還麻煩,不如公有的方便。
但是大工程上是避免出錯(cuò)的好方法。因?yàn)槟銓懥艘粋€(gè)軟件,跟第三方合作開發(fā),計(jì)算工資的部分你這里把關(guān),可是第三方的人如果可以操作你內(nèi)部數(shù)據(jù),他直接修改了工資的值,你就虧了,所以你要把工資這個(gè)變量設(shè)為私有的,這樣第三方的人就不能直接修改你的值了。

到此這篇關(guān)于舉例分析private的作用(c/c++學(xué)習(xí))的文章就介紹到這了,更多相關(guān)private作用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語言超全面講解字符串函數(shù)

    C語言超全面講解字符串函數(shù)

    字符串函數(shù)(String?processing?function)也叫字符串處理函數(shù),指的是編程語言中用來進(jìn)行字符串處理的函數(shù),如C,pascal,Visual以及LotusScript中進(jìn)行字符串拷貝,計(jì)算長度,字符查找等的函數(shù)
    2022-06-06
  • C語言文件操作詳解

    C語言文件操作詳解

    這篇文章主要介紹了C語言 文件操作解析詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下,希望能夠給你帶來幫助
    2021-10-10
  • C語言實(shí)現(xiàn)文本文件/二進(jìn)制文件格式互換

    C語言實(shí)現(xiàn)文本文件/二進(jìn)制文件格式互換

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)文本文件和二進(jìn)制文件格式互換,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • 理解數(shù)據(jù)結(jié)構(gòu)

    理解數(shù)據(jù)結(jié)構(gòu)

    本文是對(duì)數(shù)據(jù)結(jié)構(gòu)對(duì)編程的重要性,數(shù)據(jù)結(jié)構(gòu)對(duì)數(shù)據(jù)存儲(chǔ),數(shù)據(jù)處理,內(nèi)存工作,從宏觀上理解數(shù)據(jù)結(jié)構(gòu)
    2016-07-07
  • C/C++中常用加密與解密算法的實(shí)現(xiàn)

    C/C++中常用加密與解密算法的實(shí)現(xiàn)

    這篇文章主要為大家詳細(xì)介紹了一些在C++中常用的加密與解密算法,這其中包括Xor異或、BASE64、AES、MD5、SHA256、RSA等,感興趣的小伙伴可以學(xué)習(xí)一下
    2023-11-11
  • VC++角色游戲中的人物初始化模塊代碼實(shí)例

    VC++角色游戲中的人物初始化模塊代碼實(shí)例

    這篇文章主要介紹了VC++角色游戲中的人物初始化模塊,對(duì)大家學(xué)習(xí)VC++有一定的幫助,需要的朋友可以參考下
    2014-08-08
  • c++如何控制對(duì)象的創(chuàng)建方式(禁止創(chuàng)建棧對(duì)象or堆對(duì)象)和創(chuàng)建的數(shù)量

    c++如何控制對(duì)象的創(chuàng)建方式(禁止創(chuàng)建棧對(duì)象or堆對(duì)象)和創(chuàng)建的數(shù)量

    這篇文章主要介紹了c++如何控制對(duì)象的創(chuàng)建方式和創(chuàng)建的數(shù)量,幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-08-08
  • C++實(shí)現(xiàn)LeetCode(16.最近三數(shù)之和)

    C++實(shí)現(xiàn)LeetCode(16.最近三數(shù)之和)

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(16.最近三數(shù)之和),本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C語言實(shí)現(xiàn)字符串操作函數(shù)的實(shí)例

    C語言實(shí)現(xiàn)字符串操作函數(shù)的實(shí)例

    這篇文章主要介紹了C語言實(shí)現(xiàn)字符串操作函數(shù)的實(shí)例的相關(guān)資料,開發(fā)程序的時(shí)候經(jīng)常使用到一些字符串函數(shù),例如求字符串長度,拷貝字符串……,需要的朋友可以參考下
    2017-08-08
  • C++常用字符串函數(shù)大全(2)

    C++常用字符串函數(shù)大全(2)

    這篇文章主要給大家分享的是C++常用字符串函數(shù)的大全,cstring.h庫即C語言中的string.h庫,它是C語言中為字符串提供的標(biāo)準(zhǔn)庫。C++對(duì)此進(jìn)行了兼容,所以我們在C++當(dāng)中一樣可以使用,下面文章的詳細(xì)內(nèi)容,需要的朋友可以參考一下
    2021-11-11

最新評(píng)論

麟游县| 昌图县| 长岭县| 铁力市| 怀化市| 潼南县| 合江县| 视频| 桂林市| 郯城县| 新丰县| 宁化县| 体育| 卓尼县| 桐柏县| 岑溪市| 乌海市| 柘城县| 富顺县| 苗栗市| 康平县| 朝阳县| 肇州县| 富阳市| 淮安市| 潢川县| 青田县| 临江市| 维西| 南雄市| 闽侯县| 辽宁省| 且末县| 石家庄市| 明溪县| 三河市| 伊宁市| 青海省| 恩施市| 从化市| 锡林郭勒盟|