C++中封裝與信息隱藏的詳解及其作用介紹
概述
封裝是面向?qū)ο缶幊讨械陌褦?shù)據(jù)和操作數(shù)據(jù)的函數(shù)綁定在一起的一個概念. 這樣能避免受到外界干擾和誤用.
數(shù)據(jù)隱藏包括數(shù)據(jù)封裝和數(shù)據(jù)抽象兩部分. 數(shù)據(jù)封裝是一種把數(shù)據(jù)和操作數(shù)據(jù)的函數(shù)捆綁在一起的機制. 數(shù)據(jù)抽象是一種僅向用戶暴露接口而把具體的實現(xiàn)細節(jié)隱藏起來的機制.
類的公用接口
C++ 通過類來實現(xiàn)封裝性, 把數(shù)據(jù)和與這些數(shù)據(jù)有關(guān)的操作封裝在一個類中. 在聲明了一個類以后, 用戶主要是通過調(diào)用公用的成員函數(shù)來實現(xiàn)類提供的功能, 稱為消息傳遞.
公用成員函數(shù)是用戶使用類的公用接口 (public interface), 或者說是類的對外接口. 在類外不能直接訪問私有數(shù)據(jù)成員, 但可以通過調(diào)用公用成員函數(shù)來引用甚至修改私有數(shù)據(jù)成員.
類的私有實現(xiàn)
用戶不必關(guān)系這些功能實現(xiàn)的細節(jié), 而只需要知道調(diào)用哪個函數(shù)會得到什么結(jié)果, 實現(xiàn)什么功能即可. 通過成員函數(shù)對數(shù)據(jù)成員進行操作稱為類的實現(xiàn). 實現(xiàn)的細節(jié)對用戶是隱蔽的. (信息隱藏)
類中被操作的數(shù)據(jù)是私有的, 實現(xiàn)的細節(jié)對用戶是隱蔽的. 這稱為私有實現(xiàn). (private implementation)
類的公用接口與私有實現(xiàn)的分離形成了信息隱蔽. 將接口與實現(xiàn)分離是軟件工程的一個最基本的原則.
優(yōu)點:
- 如果想擴充累的功能, 只需要修改本類中有關(guān)的數(shù)據(jù)成員和它有關(guān)的成員函數(shù). 程序中類外的部分可以不必修改
- 如果在編譯時發(fā)現(xiàn)類中的數(shù)據(jù)讀寫有錯, 不必檢查整個程序. 只需檢查本類中訪問這些數(shù)據(jù)的少數(shù)成員函數(shù)
方法與消息
方法 (method) 指類的成員函數(shù)在面向?qū)ο蟪绦蚶碚撝斜环Q為方法, 是指對數(shù)據(jù)的操作. 一個 “方法” 對應(yīng)一種操作. 只有被聲明為公用的方法才能被外界所激活.
消息指對公用函數(shù)的調(diào)用. 外界是通過發(fā) “消息” 來激活有關(guān)方法的. 調(diào)用對象的成員函數(shù), 就是向?qū)ο蟀l(fā)出的一個 “消息”. 通知它執(zhí)行其中的方法.
面向?qū)ο蟮奶攸c:
- 封裝性: 各個對象間相對獨立
- 抽象性: 類是對象的抽象, 對象是類的實例
- 繼承性: 解決重用問題
- 多態(tài)性: 由繼承產(chǎn)生的相關(guān)的不同的類. 其對象對同一消息會做出不同的響應(yīng)
到此這篇關(guān)于C++中封裝與信息隱藏的詳解及其作用介紹的文章就介紹到這了,更多相關(guān)C++ 封裝 信息隱藏內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Pipes實現(xiàn)LeetCode(194.轉(zhuǎn)置文件)
這篇文章主要介紹了Pipes實現(xiàn)LeetCode(194.轉(zhuǎn)置文件),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下2021-08-08C語言項目小學(xué)生數(shù)學(xué)考試系統(tǒng)參考
今天小編就為大家分享一篇關(guān)于C語言項目小學(xué)生數(shù)學(xué)考試系統(tǒng)參考,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-02-02C++關(guān)鍵字thread_local學(xué)習(xí)筆記
這篇文章主要為大家介紹了C++關(guān)鍵字thread_local學(xué)習(xí)筆記,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-10-10基于c++強制類型轉(zhuǎn)換的(總結(jié))詳解
本篇文章對C++中的強制類型轉(zhuǎn)換進行了詳細的分析介紹。需要的朋友參考下2013-05-05C++數(shù)位DP復(fù)雜度統(tǒng)計數(shù)字問題示例詳解
這篇文章主要為大家介紹了利用C++數(shù)位DP的復(fù)雜度來統(tǒng)計數(shù)字問題的示例實現(xiàn)過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升值加薪2021-11-11C++中fstream,ifstream及ofstream用法淺析
這篇文章主要介紹了C++中fstream,ifstream及ofstream用法,適合C++初學(xué)者學(xué)習(xí)文件流的操作,需要的朋友可以參考下2014-08-08