C 中的訪問控制與封裝

2022-08-26 09:42:10 字數 1030 閱讀 8517

訪問控制與封裝

使用訪問說明符來加強類的封裝性。public 和private

使用class或struct關鍵字

二者的唯一區別就是預設訪問許可權不太一樣:struct的預設是public, class預設是private

友元

類可以允許其他類或函式訪問它的非公有成員,方法是通過令其它類或函式成為它的友元。

一般來說,最好在類定義開始或者結束前的位置集中宣告友元。

友元的宣告僅僅指定了訪問的許可權,而非通常意義上的函式宣告。

友元不存在傳遞性。每個類負責控制自己的友元類或友元函式。

函式過載和友元

過載函式的友元需要各自單獨宣告,不是公用的。

關鍵概念:封裝的益處

確保使用者**不會被無意間破壞封裝物件的狀態。

被封裝的類的具體實現細節可以隨時改變,而無須調整使用者級別的**。

封裝、繼承、多型是類的三個特性。

過載成員函式

和非成員函式差不多。

可變資料成員

乙個可變資料成員永遠不會是const,即使它是const物件的成員。

mutable size_t access_ctr;

類資料成員的初始值

當我們提供乙個類內初始值時,必須以符號 = 或花括號表示。

類型別

即使兩個類的成員列表完全一致,他們也是不同的型別。

友元宣告和作用域

訪問控制與封裝

使用訪問說明符能夠加強類的封裝性 一般的,建構函式和部分作為介面的成員函式定義緊跟在public說明符之後。資料成員和作為實現部分的成員函式緊跟在private之後。乙個類可以包含0個或多個訪問說明符,對於某個說明符出現多少次也沒有限制。每個訪問說明符指定接下來的成員訪問級別,其有效範圍直到出現下乙...

訪問控制與封裝

在c 語言中,我們使用訪問說明符加強類的封裝性 定義在public說明符之後的成員在整個程式內可被訪問,public成員定義類的介面。定義在private說明符之後的成員可以被類的成員函式訪問,但是不能被使用該類的 訪問,private部分封裝 即隱藏了 類的實現細節。作為介面的一部分,建構函式和部...

7 2 訪問控制與封裝

目錄完整 2 includeusing namespace std class sale data sale data string s,unsigned n,double p bookno s units sold n revenue n p sale data istream string ib...