溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

C++中封裝與信息隱藏的機(jī)制講解

發(fā)布時(shí)間:2021-09-07 16:56:28 來源:億速云 閱讀:130 作者:chen 欄目:開發(fā)技術(shù)

本篇內(nèi)容介紹了“C++中封裝與信息隱藏的機(jī)制講解”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

目錄
  • 概述

  • 類的公用接口

  • 類的私有實(shí)現(xiàn)

  • 方法與消息

概述

封裝是面向?qū)ο缶幊讨械陌褦?shù)據(jù)和操作數(shù)據(jù)的函數(shù)綁定在一起的一個(gè)概念. 這樣能避免受到外界干擾和誤用.

C++中封裝與信息隱藏的機(jī)制講解

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

類的公用接口

C++ 通過類來實(shí)現(xiàn)封裝性, 把數(shù)據(jù)和與這些數(shù)據(jù)有關(guān)的操作封裝在一個(gè)類中. 在聲明了一個(gè)類以后, 用戶主要是通過調(diào)用公用的成員函數(shù)來實(shí)現(xiàn)類提供的功能, 稱為消息傳遞.

公用成員函數(shù)是用戶使用類的公用接口 (public interface), 或者說是類的對外接口. 在類外不能直接訪問私有數(shù)據(jù)成員, 但可以通過調(diào)用公用成員函數(shù)來引用甚至修改私有數(shù)據(jù)成員.

C++中封裝與信息隱藏的機(jī)制講解

類的私有實(shí)現(xiàn)

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

類中被操作的數(shù)據(jù)是私有的, 實(shí)現(xiàn)的細(xì)節(jié)對用戶是隱蔽的. 這稱為私有實(shí)現(xiàn). (private implementation)

C++中封裝與信息隱藏的機(jī)制講解

類的公用接口與私有實(shí)現(xiàn)的分離形成了信息隱蔽. 將接口與實(shí)現(xiàn)分離是軟件工程的一個(gè)最基本的原則.

優(yōu)點(diǎn):

  1. 如果想擴(kuò)充累的功能, 只需要修改本類中有關(guān)的數(shù)據(jù)成員和它有關(guān)的成員函數(shù). 程序中類外的部分可以不必修改

  2. 如果在編譯時(shí)發(fā)現(xiàn)類中的數(shù)據(jù)讀寫有錯(cuò), 不必檢查整個(gè)程序. 只需檢查本類中訪問這些數(shù)據(jù)的少數(shù)成員函數(shù)

方法與消息

方法 (method) 指類的成員函數(shù)在面向?qū)ο蟪绦蚶碚撝斜环Q為方法, 是指對數(shù)據(jù)的操作. 一個(gè) “方法” 對應(yīng)一種操作. 只有被聲明為公用的方法才能被外界所激活.

消息指對公用函數(shù)的調(diào)用. 外界是通過發(fā) “消息” 來激活有關(guān)方法的. 調(diào)用對象的成員函數(shù), 就是向?qū)ο蟀l(fā)出的一個(gè) “消息”. 通知它執(zhí)行其中的方法.

面向?qū)ο蟮奶攸c(diǎn):

  1. 封裝性: 各個(gè)對象間相對獨(dú)立

  2. 抽象性: 類是對象的抽象, 對象是類的實(shí)例

  3. 繼承性: 解決重用問題

  4. 多態(tài)性: 由繼承產(chǎn)生的相關(guān)的不同的類. 其對象對同一消息會做出不同的響應(yīng)

“C++中封裝與信息隱藏的機(jī)制講解”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

c++
AI