亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 第23章 類(一)封裝.htm

?? 用非常通俗的語言介紹了C++和C
?? HTM
?? 第 1 頁 / 共 2 頁
字號:
        lang=zh-cn>};</SPAN></FONT></P></TD></TR></TBODY></TABLE></CENTER></DIV>
      <P><BR><SPAN lang=zh-cn>&nbsp;&nbsp; 然后,我們來做個比較:</SPAN></P>
      <P> </P>
      <P><SPAN lang=zh-cn>[略]</SPAN></P>
      <P> </P>
      <H1><B><FONT size=4><A name=23.3>23.<SPAN lang=zh-cn>3</SPAN></A> <SPAN 
      lang=zh-cn>類的成員數據</SPAN>與<SPAN lang=zh-cn>成員函數</SPAN></FONT></B></H1>
      <P> </P>
      <P><SPAN 
      lang=zh-cn>成員?長這么大,肯定填寫過什么“家庭成員”的樣的表格。我們進行的數據定義或函數定義,它們之所以前面有沒加個“成員”的修飾,是因為它們都沒有一個家,哎,誰不想有個家呢?在C#和Java里,所有數據及函數都必須有個家才可以存在,而在C++里,允許數據或函數可以沒有家(不屬于某個類);也可以允許有個家(屬于某個類)。</SPAN></P>
      <P> </P>
      <P><SPAN lang=zh-cn>class CBaoBao</SPAN></P>
      <P><SPAN lang=zh-cn>{&nbsp; </SPAN></P>
      <P><SPAN lang=zh-cn>&nbsp;&nbsp; //下面就是CBaoCBao類的成員數據:</SPAN></P>
      <P><SPAN lang=zh-cn>&nbsp;&nbsp; char xingMing[11];</SPAN></P>
      <P><SPAN lang=zh-cn>&nbsp;&nbsp; int shenGao;</SPAN></P>
      <P><SPAN lang=zh-cn>&nbsp;&nbsp; float tiZhou;</SPAN></P>
      <P> </P>
      <P><SPAN lang=zh-cn>&nbsp;&nbsp; //而這個是CBaoBao類的成員函數:</SPAN></P>
      <P><SPAN lang=zh-cn>&nbsp;&nbsp; void Chi(int a); </SPAN></P>
      <P><SPAN lang=zh-cn>};</SPAN></P>
      <P> </P>
      <P><SPAN lang=zh-cn>類的成員數據和成員函數,都稱為類的成員(像是一句廢話?)。</SPAN></P>
      <P> </P>
      <H3><SPAN lang=zh-cn><A name=23.3.1>23.3.1</A> 成員數據初始化的疑問</SPAN></H3>
      <P><SPAN lang=zh-cn>我們以前常有這樣的代碼:</SPAN></P>
      <P> </P>
      <P><SPAN lang=zh-cn>int a = 100; //定義一個變量,同時給它賦值為100.</SPAN></P>
      <P> </P>
      <P><SPAN 
      lang=zh-cn>可是,你一定一定要明白了,當我們在定義一個類或一個結構時,我們只是在“<B>組裝</B>”一個新的數據類型。而并沒有實際定義一個變量,所以C++不允許在定義一個類的內部,對它的成員數據賦值。下面的代碼是錯誤的:</SPAN></P>
      <P> </P>
      <P><SPAN lang=zh-cn>//在定義一個類時,試圖初始化它的成員數據!不行!</SPAN></P>
      <P><SPAN lang=zh-cn>class CBaoBao</SPAN></P>
      <P><SPAN lang=zh-cn>{</SPAN></P>
      <P><SPAN lang=zh-cn>&nbsp;&nbsp;&nbsp; int shenGao = 70; //不行!</SPAN></P>
      <P><SPAN lang=zh-cn>&nbsp;&nbsp;&nbsp; ...</SPAN></P>
      <P><SPAN lang=zh-cn>};</SPAN></P>
      <P><SPAN 
      lang=zh-cn>那么,當我們定義某一個類的具體變量時,這個變量里的成員數據初始值是多少?理論上,它們將是隨機的值,也就是不能預定的值。</SPAN></P>
      <P> </P>
      <P><SPAN lang=zh-cn>...</SPAN><SPAN lang=en>&nbsp;</SPAN></P>
      <P><SPAN lang=zh-cn>CBaoCBao baobao1; </SPAN></P>
      <P><SPAN lang=zh-cn>...</SPAN></P>
      <P> </P>
      <P><SPAN lang=zh-cn>定義完baobao1之后,bao1bao1里的shenGao是多少?不知道!</SPAN></P>
      <P><SPAN lang=zh-cn>那么,如何給某個類變量的成員數據一個初始的值(即默認的值)?下章我們會講到。</SPAN></P>
      <P> </P>
      <H3><A name=23.3.2><SPAN lang=zh-cn>23.3</SPAN>.<SPAN 
      lang=zh-cn>2</SPAN></A><SPAN lang=zh-cn> 成員函數的實現</SPAN></H3>
      <P><SPAN 
      lang=zh-cn>我們可以在類里頭加了函數(聲明了類的成員函數),比如在前面的BaoBao類加了函數:Chi(...);可是我們還沒有實現這個函數呢。</SPAN></P>
      <P> </P>
      <P><SPAN lang=zh-cn>一個類的成員函數一般在類的外部定義,但要注意它和普通函數定義時的區別。</SPAN></P>
      <P> </P>
      <P><SPAN lang=zh-cn>//定義,或稱為實現CBaoBao的成員函數:Chi:</SPAN></P>
      <P><SPAN lang=zh-cn>void <B>CBaoBao::</B>Chi(int a) 
      //和普通函數區別:類的成員函數定義時,必須加上類名和::</SPAN></P>
      <P><SPAN lang=zh-cn>{</SPAN></P>
      <P><SPAN lang=zh-cn>&nbsp;&nbsp; //...和普通函數一樣,這里是函數體</SPAN></P>
      <P><SPAN lang=zh-cn>}//和普通函數一樣,這里沒有分號</SPAN></P>
      <P> </P>
      <P><SPAN lang=zh-cn>類成員函數也可以直接在類的體內定義,但此時就不必寫類名加::了。</SPAN></P>
      <P> </P>
      <P><SPAN lang=zh-cn>class CBaoBao</SPAN></P>
      <P><SPAN lang=zh-cn>{&nbsp; </SPAN></P>
      <P><SPAN lang=zh-cn>&nbsp;&nbsp; //下面就是CBaoCBao類的成員數據:</SPAN></P>
      <P><SPAN lang=zh-cn>&nbsp;&nbsp; char xingMing[11];</SPAN></P>
      <P><SPAN lang=zh-cn>&nbsp;&nbsp; int shenGao;</SPAN></P>
      <P><SPAN lang=zh-cn>&nbsp;&nbsp; float tiZhou;</SPAN></P>
      <P> </P>
      <P><SPAN lang=zh-cn>&nbsp;&nbsp; //而這個是CBaoBao類的成員函數:</SPAN></P>
      <P><SPAN lang=zh-cn>&nbsp;&nbsp; //并且直接定義:</SPAN></P>
      <P><SPAN lang=zh-cn>&nbsp;&nbsp; void Chi(int a) //沒有分號</SPAN></P>
      <P><SPAN lang=zh-cn>&nbsp;&nbsp; {</SPAN></P>
      <P><SPAN lang=zh-cn>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //函數體...</SPAN></P>
      <P><SPAN lang=zh-cn>&nbsp;&nbsp; } //沒有分號了</SPAN></P>
      <P><SPAN lang=zh-cn>};</SPAN></P>
      <P> </P>
      <P><SPAN 
      lang=zh-cn>不過,直接在類體內的定義的成員函數,將被默認當作inline(內聯)函數。關于內聯函數,大家可以找一找前面函數章節。</SPAN></P>
      <H1><B><FONT size=4><A name=23.4>23.4</A> </FONT></B><FONT size=4><B><SPAN 
      lang=zh-cn>封</SPAN>裝</B></FONT></H1>
      <P><SPAN 
      lang=zh-cn>從有了“類”開始,C++的世界越來越有趣了。前面說類就像一個家,家里有成員(數據或函數),現在,我們還要講“訪問”類的成員……想像有個類叫“美女”。</SPAN></P>
      <P> </P>
      <P><SPAN lang=zh-cn>class MeiNu //美女類!</SPAN></P>
      <P><SPAN lang=zh-cn>{</SPAN></P>
      <P><SPAN lang=zh-cn>&nbsp;&nbsp; int XW;&nbsp; //胸圍</SPAN></P>
      <P><SPAN lang=zh-cn>&nbsp;&nbsp; int YW;&nbsp; //我就不說了噢 :)</SPAN></P>
      <P><SPAN lang=zh-cn>&nbsp;&nbsp; int TW;&nbsp; //我還是不說了噢 :))</SPAN></P>
      <P><SPAN lang=zh-cn>};</SPAN></P>
      <P> </P>
      <P><SPAN 
      lang=zh-cn>我看到部分學員在想入非非了,這可不行。請打開CB,新建一個“控制臺/Console”工程。然后把上面新建工程后默認出現的Unit1.cpp中的main()函數之上。(偷偷說一聲,后面的章節里,我們學習C++的也可開始慢慢有在Windows下的工程了!因為我們學習類了嘛,任督二脈都打通了,當然得來點更有意思的……)</SPAN></P>
      <P> </P>
      <P align=center><IMG height=250 src="第23章 類(一)封裝.files/ls23.h2.gif" 
      width=343 border=0></P>
      <P align=center><SPAN lang=zh-cn>(在Unit1.cpp里加入MeiNu類)</SPAN></P>
      <P> </P>
      <P><SPAN lang=zh-cn>然后</SPAN>……<SPAN 
      lang=zh-cn>當然是定義一個美女了!我們就在main函數里定義了,我不貼圖了,你們對著課程,自己往CB里添代碼。</SPAN></P>
      <P> </P>
      <TABLE id=AutoNumber2 cellSpacing=0 cellPadding=0 width="100%" 
      bgColor=#008080 border=1>
        <TBODY>
        <TR>
          <TD width="100%"><FONT color=#ffffff>int main(int argc, char* 
            argv[]) </FONT>
            <P><FONT color=#ffffff>{ </FONT></P>
            <P><FONT color=#ffffff><SPAN lang=zh-cn>&nbsp;&nbsp; 
            <B>&nbsp;</B></SPAN><B>MeiNu zhaoWei;<SPAN lang=zh-cn> 
            //美女趙?</SPAN></B><BR><SPAN 
            lang=zh-cn>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></FONT></P>
            <P><FONT color=#ffffff><SPAN lang=zh-cn>&nbsp;&nbsp;&nbsp; 
            </SPAN>return 0; </FONT></P>
            <P><FONT color=#ffffff>} </FONT></P></TD></TR></TBODY></TABLE>
      <P> </P>
      <P><SPAN lang=zh-cn>現</SPAN>在<SPAN 
      lang=zh-cn>開始有些為難了,趙薇的三圍是多少?甭說她了,一般地說,通常美女的三圍是多少啊?上網查一下吧……</SPAN></P>
      <P><SPAN lang=zh-cn>哈哈,終于找到了,不過是三版女朗喬丹的。郁悶中……88了趙薇。現在代碼為:</SPAN></P>
      <TABLE id=AutoNumber3 cellSpacing=0 cellPadding=0 width="100%" 
      bgColor=#008080 border=1>
        <TBODY>
        <TR>
          <TD width="100%"><FONT color=#ffffff><SPAN 
            lang=zh-cn>...</SPAN></FONT> 
            <P><FONT color=#ffffff><SPAN lang=zh-cn>MeiNu <FONT 
            size=-1>j</FONT></SPAN><FONT size=-1>ordan<SPAN lang=zh-cn>; //now 
            is 喬丹!</SPAN></FONT></FONT></P>
            <P> </P>
            <P><SPAN lang=zh-cn><FONT color=#ffffff size=-1>jordan.XW = 
            34;</FONT></SPAN></P>
            <P><SPAN lang=zh-cn><FONT color=#ffffff size=-1>jordan.YW = 
            24;</FONT></SPAN></P>
            <P><SPAN lang=zh-cn><FONT color=#ffffff size=-1>jordan.TW = 
            34;</FONT></SPAN></P>
            <P><FONT color=#ffffff><SPAN 
        lang=zh-cn>...</SPAN></FONT></P></TD></TR></TBODY></TABLE>
      <P> </P>
      <P><SPAN lang=zh-cn><FONT 
      size=-1>按Ctrl+Shift+S,保存Unit1.cpp和工程,工程我就命令為MeiNuPrj.bpr了。</FONT></SPAN></P>
      <P> </P>
      <P><SPAN lang=zh-cn><FONT size=-1>然后按Ctrl + 
      F9.試圖編譯一下!可是,可是,編譯好像說:對不起,喬丹的胸圍無法訪問……(如圖)</FONT></SPAN></P>
      <P align=center><IMG height=54 src="第23章 類(一)封裝.files/ls23.h3.gif" 
      width=359 border=0></P>
      <P align=center><SPAN lang=zh-cn>(not accessible 就是 “無法接觸到”,或“無法訪問” 
      )</SPAN></P>
      <P> </P>
      <P><SPAN lang=zh-cn>我們想給喬丹設置一下三圍,可是C++編譯器竟義正辭嚴地拒絕了!這是怎么回事?</SPAN></P>
      <P><SPAN 
      lang=zh-cn>因為,類/class對它的成員(數據或函數),有“保護”機制。不允許“外人”隨便訪問到它的成員。<B>這也就是傳說中“面向對象”的三大基石之一“封裝性”</B>。</SPAN></P>
      <P> </P>
      <P><SPAN lang=zh-cn>[略]</SPAN></P>
      <H3><B><FONT size=4><A name=23.4.1>23.4<SPAN lang=zh-cn>.1</SPAN></A> 
      <SPAN lang=zh-cn>私有成員/private member</SPAN></FONT></B></H3>
      <P><SPAN lang=zh-cn>[略]</SPAN></P>
      <P> </P>
      <P><SPAN 
      lang=zh-cn>從private:開始,后面本類的成員數據或函數,都將是私有的,除非我們又加了一個新的訪問等級限制關鍵字。</SPAN></P>
      <H3><B><FONT size=4><A name=23.4.2>23.<SPAN lang=zh-cn>4.2</SPAN></A> 
      保護成員/protected member</FONT></B></H3>
      <P><SPAN 
      lang=zh-cn>保護成員也不能在類的外部直接訪問,但可以在該類的子類(或稱為派生類)中訪問。所謂子類或派生類,我們后面的章節才會講到。大致的意思,先不妨認為是,你們家的東西,外人不能用,但你兒子或兒媳(他有自己的家)可以用……這是不合適的比喻。只是為了感性理解一下私有和保護的一種區別。</SPAN></P>
      <H3><B><FONT size=4><A name=23.4.3>23.<SPAN lang=zh-cn>4.3</SPAN></A> 
      公有成員/public member</FONT></B></H3>
      <P><SPAN lang=zh-cn>[略]</SPAN></P>
      <H3><FONT size=4><A name=23.4.4><B>2</B></FONT><FONT 
      size=4><B>3.4.4</B></A><B> “封裝”的作用</B></FONT></H3>
      <P> </P>
      <P><SPAN 
      lang=zh-cn>說著說著,這問題就來了。為什么要用private或protected來保護類的成員啊?大家都是公有的,都可以直接訪問,多方便啊?這問題如果反過來問,就是面向對象三大基石之一“封裝”有什么好處?</SPAN></P>
      <P><SPAN lang=zh-cn>封裝的好處,兩點,并且兩點相輔相成。</SPAN></P>
      <P> </P>
      <P><SPAN lang=zh-cn>[略]</SPAN></P>
      <P> </P>
      <H3><SPAN lang=zh-cn><A name=23.5>23.5</A> 作</SPAN><B><FONT 
      size=4>業</FONT></B></H3>
      <P><SPAN lang=zh-cn>[略]</SPAN></P>
      <P> </P></TD></TR>
  <TR>
    <TD 
    style="FONT-SIZE: 10pt; TEXT-INDENT: 20px; LINE-HEIGHT: 150%; FONT-FAMILY: &Euml;&Icirc;&Igrave;&aring;" 
    width="100%" height=37> </TD></TR></TBODY></TABLE></CENTER></BODY></HTML>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91麻豆精品久久久久蜜臀| 成人性视频网站| 紧缚捆绑精品一区二区| 国产福利一区二区| 678五月天丁香亚洲综合网| 日本一区二区三区四区| 伦理电影国产精品| 欧美主播一区二区三区美女| 久久久高清一区二区三区| 丝袜a∨在线一区二区三区不卡 | 国产精品嫩草影院com| 亚洲第一二三四区| 99综合电影在线视频| 国产午夜久久久久| 韩国一区二区视频| 久久综合九色综合欧美亚洲| 奇米影视在线99精品| 欧美日韩精品欧美日韩精品| 亚洲欧美日韩一区二区| 成人av网站大全| 欧美国产激情一区二区三区蜜月| 久久99蜜桃精品| 日韩欧美高清一区| 蜜臀av一级做a爰片久久| 7777精品久久久大香线蕉| 一区二区三区欧美| 色欧美片视频在线观看 | 久久综合色一综合色88| 日韩精品亚洲专区| 在线成人免费视频| 日韩激情一二三区| 日韩一级免费观看| 精品中文av资源站在线观看| 欧美大胆人体bbbb| 国产一区二区三区蝌蚪| 久久久综合视频| 国产成人在线免费| 国产精品黄色在线观看| 91视频免费观看| 亚洲一卡二卡三卡四卡五卡| 欧美色视频在线观看| 日韩精品电影一区亚洲| 91精品国产乱| 黄色资源网久久资源365| 国产日韩v精品一区二区| 高清在线不卡av| 中文字幕一区二区三区乱码在线| 色综合夜色一区| 亚洲高清在线精品| 欧美一区二区三区小说| 国产精品亚洲成人| 中文字幕一区av| 69堂精品视频| 国产精品一二三四区| 亚洲人成小说网站色在线| 精品视频一区 二区 三区| 久久99国产精品久久| 国产日韩欧美高清在线| 在线一区二区观看| 欧美bbbbb| 国产精品欧美综合在线| 欧美日韩国产精选| 国产在线精品免费| 亚洲精品国产品国语在线app| 欧美一区日韩一区| av综合在线播放| 秋霞午夜鲁丝一区二区老狼| 国产亲近乱来精品视频 | 国产精品视频一二三| 在线看不卡av| 国产福利一区在线| 五月婷婷综合激情| 欧美激情在线观看视频免费| 欧美三级电影网站| 成人黄色片在线观看| 日韩在线a电影| 亚洲精品国产视频| 国产三级精品视频| 91精品国产欧美一区二区| 91小视频在线| 激情六月婷婷久久| 午夜一区二区三区视频| 国产精品视频在线看| 日韩精品中文字幕一区| 色丁香久综合在线久综合在线观看 | 亚洲电影一区二区三区| 久久精品水蜜桃av综合天堂| 欧美人狂配大交3d怪物一区| 不卡一卡二卡三乱码免费网站| 国产精品99久久久| 日韩伦理免费电影| 日韩一区二区不卡| 91精品国产91久久久久久一区二区 | 精品久久一区二区三区| 色激情天天射综合网| 亚洲免费在线观看视频| 94-欧美-setu| 日韩视频免费直播| 国产一区二区三区观看| 亚洲婷婷综合色高清在线| 色婷婷综合五月| 日韩国产精品大片| 国产色产综合色产在线视频| 99精品视频一区二区三区| 午夜精品久久久久久久99樱桃| 制服丝袜中文字幕一区| 日本不卡视频一二三区| 国产精品三级电影| 欧美午夜精品久久久久久超碰| 亚洲www啪成人一区二区麻豆| 精品裸体舞一区二区三区| 99久久久无码国产精品| 日精品一区二区| 中文字幕欧美日本乱码一线二线| 欧美性色aⅴ视频一区日韩精品| 久久综合综合久久综合| 综合久久久久久久| 精品粉嫩aⅴ一区二区三区四区| 色综合久久久久网| 国内精品国产成人国产三级粉色 | 制服丝袜亚洲播放| 成人的网站免费观看| 美女一区二区三区| 一区二区高清在线| 国产视频一区二区三区在线观看| 欧美日韩中文字幕精品| jiyouzz国产精品久久| 国内不卡的二区三区中文字幕| 亚洲日本护士毛茸茸| 久久久久国产精品麻豆ai换脸 | fc2成人免费人成在线观看播放| 美女www一区二区| 亚洲第一会所有码转帖| 亚洲国产精品v| 26uuu亚洲综合色欧美| 这里是久久伊人| 欧美日韩一级大片网址| 91尤物视频在线观看| 成人国产精品视频| 国产黄色精品视频| 韩国在线一区二区| 麻豆精品国产传媒mv男同| 日本特黄久久久高潮| 日韩综合一区二区| 亚洲午夜激情网页| 一区二区三区精品视频在线| 国产精品剧情在线亚洲| 国产精品免费视频观看| 国产人妖乱国产精品人妖| 26uuuu精品一区二区| 久久久久综合网| 国产视频一区在线观看| 国产日韩综合av| 国产精品大尺度| 中文字幕日韩欧美一区二区三区| 国产精品毛片无遮挡高清| 国产精品灌醉下药二区| 中文字幕在线观看不卡| 中文字幕亚洲区| 亚洲欧美日韩电影| 亚洲国产精品一区二区久久| 亚洲chinese男男1069| 日韩avvvv在线播放| 久久精品国产久精国产| 国产一区二区三区国产| 成年人午夜久久久| 欧美亚男人的天堂| 欧美成人一区二区三区| 国产欧美中文在线| 国产精品区一区二区三区| 亚洲精品欧美二区三区中文字幕| 一区二区成人在线视频| 日本欧美一区二区在线观看| 国产曰批免费观看久久久| 不卡av在线免费观看| 欧美性猛交xxxx乱大交退制版| 日韩一区二区三区在线视频| 精品免费国产二区三区| 国产午夜精品一区二区| 综合欧美亚洲日本| 裸体一区二区三区| 国产91对白在线观看九色| 99综合影院在线| 4438x亚洲最大成人网| 中文字幕av资源一区| 天天操天天综合网| 国产一区二三区| 欧美在线免费视屏| 国产亚洲精品久| 亚洲成a人片综合在线| 国产福利一区二区三区在线视频| 色8久久人人97超碰香蕉987| 精品日韩一区二区| 亚洲精品第一国产综合野| 精品午夜久久福利影院| 欧美在线一二三| 亚洲国产精品二十页| 久久国产三级精品| 欧美专区在线观看一区| 国产精品无码永久免费888|