1. 程式人生 > >C++ 數據封裝和抽象

C++ 數據封裝和抽象

prot 調整 避免 接口分離 實例 分離 頻道 不變 ron

C++ 數據抽象

數據抽象是指,只向外界提供關鍵信息,並隱藏其後臺的實現細節,即只表現必要的信息而不呈現細節。

數據抽象是一種依賴於接口和實現分離的編程(設計)技術。

讓我們舉一個現實生活中的真實例子,比如一臺電視機,您可以打開和關閉、切換頻道、調整音量、添加外部組件(如喇叭、錄像機、DVD 播放器),但是您不知道它的內部實現細節,也就是說,您並不知道它是如何通過纜線接收信號,如何轉換信號,並最終顯示在屏幕上。

因此,我們可以說電視把它的內部實現和外部接口分離開了,您無需知道它的內部實現原理,直接通過它的外部接口(比如電源按鈕、遙控器、聲量控制器)就可以操控電視。

現在,讓我們言歸正傳,就 C++ 編程而言,C++ 類為數據抽象

提供了可能。它們向外界提供了大量用於操作對象數據的公共方法,也就是說,外界實際上並不清楚類的內部實現。

例如,您的程序可以調用 sort() 函數,而不需要知道函數中排序數據所用到的算法。實際上,函數排序的底層實現會因庫的版本不同而有所差異,只要接口不變,函數調用就可以照常工作。

C++ 數據封裝

所有的 C++ 程序都有以下兩個基本要素:

  • 程序語句(代碼):這是程序中執行動作的部分,它們被稱為函數。
  • 程序數據:數據是程序的信息,會受到程序函數的影響。

封裝是面向對象編程中的把數據和操作數據的函數綁定在一起的一個概念,這樣能避免受到外界的幹擾和誤用,從而確保了安全。數據封裝引申出了另一個重要的 OOP 概念,即數據隱藏

數據封裝是一種把數據和操作數據的函數捆綁在一起的機制,數據抽象是一種僅向用戶暴露接口而把具體的實現細節隱藏起來的機制。

C++ 通過創建來支持封裝和數據隱藏(public、protected、private)。我們已經知道,類包含私有成員(private)、保護成員(protected)和公有成員(public)成員。默認情況下,在類中定義的所有項目都是私有的。

C++ 程序中,任何帶有公有和私有成員的類都可以作為數據封裝和數據抽象的實例。

C++ 數據封裝和抽象