• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Note of Justin

            關(guān)于工作和讀書的筆記

              C++博客 :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
              47 Posts :: 0 Stories :: 45 Comments :: 0 Trackbacks

            留言簿(14)

            搜索

            •  

            積分與排名

            • 積分 - 52520
            • 排名 - 433

            最新評論

            閱讀排行榜

            評論排行榜

            [原創(chuàng)文章歡迎轉(zhuǎn)載,但請保留作者信息]
            Justin 于 2009-12-20



            大師寫到這一章節(jié)的時候文風似有明顯轉(zhuǎn)變,原因未知,但我更喜歡這章的風格。

            如題,Item22的主旨是應該把所有類的數(shù)據(jù)成員聲明為私有(private)。因為:

            • 如果數(shù)據(jù)成員都是私有的,那么訪問這些成員就只能通過函數(shù)進行。于是用戶就不需要費心考慮到底要用什么方式去訪問數(shù)據(jù)成員:因為只有定義了的函數(shù)可以用。
            • 通過定義數(shù)據(jù)成員為私有,可以實現(xiàn)函數(shù)來設計、約束或禁止對這些成員的各種訪問(讀/寫等)。而如果將其設為公有(public),你將無法得知你的成員會被誰改動,也不知道會是怎樣的改動。
            • 而更重要的好處是封裝(encapsulation):可以方便的通過修改函數(shù)來改變成員的訪問方式;在成員被訪問時通知其他對象;實現(xiàn)多線程中的同步等等。
              封裝的好處究其本質(zhì),是通過對用戶隱藏數(shù)據(jù)成員來保證類行為的一致性(class invariant)。因為接口被成員訪問函數(shù)限制了,類的作者也為自己日后修改類的實現(xiàn)留了后路:如果所有的成員都是公有的,對任何代碼的修改都有可能影響到外界的使用。(因此Scott說“Public means unencapsulated, and practically speaking, unencapsulated means unchangeable, especially for classes that are widely used.”)

            那么可不可以聲明為保護(protected)呢?其實道理和前面的公有是一樣的。公有的成員對類的外部完全開放,而保護的成員對類的繼承者完全開放。這個就像兩個區(qū)間:(-infinity, +infinity) 和 (0, +infinity),兩者的大小是一樣的。

            接下來大師的一句話有擊中要害:從分裝的角度,只有兩種訪問級別:私有,及其他。

            posted on 2010-01-08 08:03 Justin.H 閱讀(1372) 評論(-1)  編輯 收藏 引用 所屬分類: Effective C++ 炒冷飯

            Feedback

            # re: Effective C++ 炒冷飯 - Item22 請把數(shù)據(jù)成員聲明為私有 2010-01-08 17:13 太垃圾了
            你天天寫這東西累不?有什么用,真是無語~~順便問一句“炒冷飯”啥意思,真  回復  更多評論
              

            # re: Effective C++ 炒冷飯 - Item22 請把數(shù)據(jù)成員聲明為私有 2010-01-08 21:46 Justin.H
            以前學過的東西,重新復習。炒冷飯的意思大概就是這樣。
            為什么要寫這些在第一篇日志和標題里應該也說清楚了的,不累,真D
            至于有沒有用嘛,仁者見仁智者見智了,呵呵  回復  更多評論
              

            # re: Effective C++ 炒冷飯 - Item22 請把數(shù)據(jù)成員聲明為私有 2010-01-09 12:46 匿名
            支持樓主,我都看了,呵呵,懶得看書。  回復  更多評論
              

            # re: Effective C++ 炒冷飯 - Item22 請把數(shù)據(jù)成員聲明為私有 2010-01-20 10:08 Goteet
            那個復習吧,不過能不能別申請公布在主頁上,我們也可以通過最新隨筆找到的。  回復  更多評論
              

            # re: Effective C++ 炒冷飯 - Item22 請把數(shù)據(jù)成員聲明為私有 2010-01-20 11:32 Justin.H
            @Goteet
            謝謝提醒~
            之前有同志建議我放在主頁上,于是我就試著放在這里了。
            后面的筆記我會發(fā)布在別處的,呵呵。  回復  更多評論
              

            一本色道久久综合| 中文成人无码精品久久久不卡 | 伊人久久大香线蕉av不卡| 91久久精品国产成人久久| 久久av高潮av无码av喷吹| 青青久久精品国产免费看| 亚洲欧美成人综合久久久 | 久久精品国产精品青草app| 亚洲成色999久久网站| 精品久久久久久久国产潘金莲| 久久99精品久久只有精品| 国产三级观看久久| 性色欲网站人妻丰满中文久久不卡| 99久久久精品| 无遮挡粉嫩小泬久久久久久久| 久久婷婷午色综合夜啪| 久久99国产精品一区二区| 精品国产日韩久久亚洲| 久久国产精品-久久精品| 中文字幕日本人妻久久久免费 | 亚洲国产成人久久精品动漫| 99久久这里只精品国产免费| 99久久www免费人成精品| 亚洲中文字幕久久精品无码喷水| 久久精品国产亚洲AV不卡| 精品久久久久久久久午夜福利| 久久这里只有精品首页| 久久久久无码精品| 久久国产高清字幕中文| 久久99精品久久久久久动态图| 久久AV高潮AV无码AV| 久久99这里只有精品国产| 办公室久久精品| 久久久国产精品福利免费| 久久精品国产精品亚洲毛片| 久久久久久精品免费看SSS| 伊人久久大香线蕉精品不卡| 老司机午夜网站国内精品久久久久久久久 | 亚洲精品美女久久久久99| 久久久久久精品久久久久| 伊人久久综合精品无码AV专区|