概述
封裝是面向對象編程中的把數據和操作數據的函數綁定在一起的一個概念. 這樣能避免受到外界干擾和誤用.
數據隱藏包括數據封裝和數據抽象兩部分. 數據封裝是一種把數據和操作數據的函數捆綁在一起的機制. 數據抽象是一種僅向用戶暴露接口而把具體的實現細節隱藏起來的機制.
類的公用接口
C++ 通過類來實現封裝性, 把數據和與這些數據有關的操作封裝在一個類中. 在聲明了一個類以后, 用戶主要是通過調用公用的成員函數來實現類提供的功能, 稱為消息傳遞.
公用成員函數是用戶使用類的公用接口 (public interface), 或者說是類的對外接口. 在類外不能直接訪問私有數據成員, 但可以通過調用公用成員函數來引用甚至修改私有數據成員.
類的私有實現
用戶不必關系這些功能實現的細節, 而只需要知道調用哪個函數會得到什么結果, 實現什么功能即可. 通過成員函數對數據成員進行操作稱為類的實現. 實現的細節對用戶是隱蔽的. (信息隱藏)
類中被操作的數據是私有的, 實現的細節對用戶是隱蔽的. 這稱為私有實現. (private implementation)
類的公用接口與私有實現的分離形成了信息隱蔽. 將接口與實現分離是軟件工程的一個最基本的原則.
優點:
- 如果想擴充累的功能, 只需要修改本類中有關的數據成員和它有關的成員函數. 程序中類外的部分可以不必修改
- 如果在編譯時發現類中的數據讀寫有錯, 不必檢查整個程序. 只需檢查本類中訪問這些數據的少數成員函數
方法與消息
方法 (method) 指類的成員函數在面向對象程序理論中被稱為方法, 是指對數據的操作. 一個 “方法” 對應一種操作. 只有被聲明為公用的方法才能被外界所激活.
消息指對公用函數的調用. 外界是通過發 “消息” 來激活有關方法的. 調用對象的成員函數, 就是向對象發出的一個 “消息”. 通知它執行其中的方法.
面向對象的特點:
- 封裝性: 各個對象間相對獨立
- 抽象性: 類是對象的抽象, 對象是類的實例
- 繼承性: 解決重用問題
- 多態性: 由繼承產生的相關的不同的類. 其對象對同一消息會做出不同的響應
到此這篇關于C++中封裝與信息隱藏的詳解及其作用介紹的文章就介紹到這了,更多相關C++ 封裝 信息隱藏內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!
原文鏈接:https://blog.csdn.net/weixin_46274168/article/details/116353352