標籤:動作 col 技術 實現 細節 strong 添加 按鈕 生活
C++ 資料抽象
資料抽象是指,只向外界提供關鍵資訊,並隱藏其背景實現細節,即只表現必要的資訊而不呈現細節。
資料抽象是一種依賴於介面和實現分離的編程(設計)技術。
讓我們舉一個現實生活中的真執行個體子,比如一台電視機,您可以開啟和關閉、切換頻道、調整音量、添加外部組件(如喇叭、錄影機、DVD 播放程式),但是您不知道它的內部實現細節,也就是說,您並不知道它是如何通過纜線接收訊號,如何轉換訊號,並最終顯示在螢幕上。
因此,我們可以說電視把它的內部實現和外部介面分離開了,您無需知道它的內部實現原理,直接通過它的外部介面(比如電源開關、遙控器、聲量控制器)就可以操控電視。
現在,讓我們言歸正傳,就 C++ 編程而言,C++ 類為資料抽象提供了可能。它們向外界提供了大量用於操作對象資料的公用方法,也就是說,外界實際上並不清楚類的內部實現。
例如,您的程式可以調用 sort() 函數,而不需要知道函數中排序資料所用到的演算法。實際上,函數排序的底層實現會因庫的版本不同而有所差異,只要介面不變,函數調用就可以照常工作。
C++ 資料封裝
所有的 C++ 程式都有以下兩個基本要素:
- 程式語句(代碼):這是程式中執行動作的部分,它們被稱為函數。
- 程式資料:資料是程式的資訊,會受到程式函數的影響。
封裝是物件導向編程中的把資料和操作資料的函數綁定在一起的一個概念,這樣能避免受到外界的幹擾和誤用,從而確保了安全。資料封裝引申出了另一個重要的 OOP 概念,即資料隱藏。
資料封裝是一種把資料和操作資料的函數捆綁在一起的機制,資料抽象是一種僅向使用者暴露介面而把具體的實現細節隱藏起來的機制。
C++ 通過建立類來支援封裝和資料隱藏(public、protected、private)。我們已經知道,類包含私人成員(private)、保護成員(protected)和公有成員(public)成員。預設情況下,在類中定義的所有項目都是私人的。
C++ 程式中,任何帶有公有和私人成員的類都可以作為資料封裝和資料抽象的執行個體。
C++ 資料封裝和抽象