C++中封裝與信息隱藏的詳解及其作用介紹
概述
封裝是面向?qū)ο缶幊讨械陌褦?shù)據(jù)和操作數(shù)據(jù)的函數(shù)綁定在一起的一個(gè)概念. 這樣能避免受到外界干擾和誤用.

數(shù)據(jù)隱藏包括數(shù)據(jù)封裝和數(shù)據(jù)抽象兩部分. 數(shù)據(jù)封裝是一種把數(shù)據(jù)和操作數(shù)據(jù)的函數(shù)捆綁在一起的機(jī)制. 數(shù)據(jù)抽象是一種僅向用戶暴露接口而把具體的實(shí)現(xiàn)細(xì)節(jié)隱藏起來(lái)的機(jī)制.

類的公用接口
C++ 通過類來(lái)實(shí)現(xiàn)封裝性, 把數(shù)據(jù)和與這些數(shù)據(jù)有關(guān)的操作封裝在一個(gè)類中. 在聲明了一個(gè)類以后, 用戶主要是通過調(diào)用公用的成員函數(shù)來(lái)實(shí)現(xiàn)類提供的功能, 稱為消息傳遞.
公用成員函數(shù)是用戶使用類的公用接口 (public interface), 或者說(shuō)是類的對(duì)外接口. 在類外不能直接訪問私有數(shù)據(jù)成員, 但可以通過調(diào)用公用成員函數(shù)來(lái)引用甚至修改私有數(shù)據(jù)成員.

類的私有實(shí)現(xiàn)
用戶不必關(guān)系這些功能實(shí)現(xiàn)的細(xì)節(jié), 而只需要知道調(diào)用哪個(gè)函數(shù)會(huì)得到什么結(jié)果, 實(shí)現(xiàn)什么功能即可. 通過成員函數(shù)對(duì)數(shù)據(jù)成員進(jìn)行操作稱為類的實(shí)現(xiàn). 實(shí)現(xiàn)的細(xì)節(jié)對(duì)用戶是隱蔽的. (信息隱藏)
類中被操作的數(shù)據(jù)是私有的, 實(shí)現(xiàn)的細(xì)節(jié)對(duì)用戶是隱蔽的. 這稱為私有實(shí)現(xiàn). (private implementation)

類的公用接口與私有實(shí)現(xiàn)的分離形成了信息隱蔽. 將接口與實(shí)現(xiàn)分離是軟件工程的一個(gè)最基本的原則.
優(yōu)點(diǎn):
- 如果想擴(kuò)充累的功能, 只需要修改本類中有關(guān)的數(shù)據(jù)成員和它有關(guān)的成員函數(shù). 程序中類外的部分可以不必修改
- 如果在編譯時(shí)發(fā)現(xiàn)類中的數(shù)據(jù)讀寫有錯(cuò), 不必檢查整個(gè)程序. 只需檢查本類中訪問這些數(shù)據(jù)的少數(shù)成員函數(shù)
方法與消息
方法 (method) 指類的成員函數(shù)在面向?qū)ο蟪绦蚶碚撝斜环Q為方法, 是指對(duì)數(shù)據(jù)的操作. 一個(gè) “方法” 對(duì)應(yīng)一種操作. 只有被聲明為公用的方法才能被外界所激活.
消息指對(duì)公用函數(shù)的調(diào)用. 外界是通過發(fā) “消息” 來(lái)激活有關(guān)方法的. 調(diào)用對(duì)象的成員函數(shù), 就是向?qū)ο蟀l(fā)出的一個(gè) “消息”. 通知它執(zhí)行其中的方法.
面向?qū)ο蟮奶攸c(diǎn):
- 封裝性: 各個(gè)對(duì)象間相對(duì)獨(dú)立
- 抽象性: 類是對(duì)象的抽象, 對(duì)象是類的實(shí)例
- 繼承性: 解決重用問題
- 多態(tài)性: 由繼承產(chǎn)生的相關(guān)的不同的類. 其對(duì)象對(duì)同一消息會(huì)做出不同的響應(yīng)
到此這篇關(guān)于C++中封裝與信息隱藏的詳解及其作用介紹的文章就介紹到這了,更多相關(guān)C++ 封裝 信息隱藏內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C語(yǔ)言實(shí)現(xiàn)ATM系統(tǒng)程序的完整代碼
這篇文章主要介紹了C語(yǔ)言實(shí)現(xiàn)ATM系統(tǒng)程序的完整代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-05-05
Pipes實(shí)現(xiàn)LeetCode(194.轉(zhuǎn)置文件)
這篇文章主要介紹了Pipes實(shí)現(xiàn)LeetCode(194.轉(zhuǎn)置文件),本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08
C語(yǔ)言項(xiàng)目小學(xué)生數(shù)學(xué)考試系統(tǒng)參考
今天小編就為大家分享一篇關(guān)于C語(yǔ)言項(xiàng)目小學(xué)生數(shù)學(xué)考試系統(tǒng)參考,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-02-02
C++關(guān)鍵字thread_local學(xué)習(xí)筆記
這篇文章主要為大家介紹了C++關(guān)鍵字thread_local學(xué)習(xí)筆記,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10
基于c++強(qiáng)制類型轉(zhuǎn)換的(總結(jié))詳解
本篇文章對(duì)C++中的強(qiáng)制類型轉(zhuǎn)換進(jìn)行了詳細(xì)的分析介紹。需要的朋友參考下2013-05-05
C語(yǔ)言關(guān)于時(shí)間復(fù)雜度詳解
大家好,本篇文章主要講的是C語(yǔ)言關(guān)于時(shí)間復(fù)雜度詳解,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽2022-01-01
總結(jié)C語(yǔ)言中const關(guān)鍵字的使用
一起雖然學(xué)過c語(yǔ)言,但是并沒有寫過太多的代碼,最近想要拾起c語(yǔ)言,就寫了一些代碼,但是對(duì)const關(guān)鍵字比較陌生,這里總結(jié)一下,方法自己和大家有需要的時(shí)候參考借鑒,下面跟著小編一起學(xué)習(xí)學(xué)習(xí)吧。2016-11-11
C++數(shù)位DP復(fù)雜度統(tǒng)計(jì)數(shù)字問題示例詳解
這篇文章主要為大家介紹了利用C++數(shù)位DP的復(fù)雜度來(lái)統(tǒng)計(jì)數(shù)字問題的示例實(shí)現(xiàn)過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升值加薪2021-11-11
C++中fstream,ifstream及ofstream用法淺析
這篇文章主要介紹了C++中fstream,ifstream及ofstream用法,適合C++初學(xué)者學(xué)習(xí)文件流的操作,需要的朋友可以參考下2014-08-08

