類的設計與受保護的成員

2021-07-04 12:06:34 字數 836 閱讀 4759

以下是c++ primer中文版中對類的設計關鍵概念的總結,是精髓,要好好理解,原文如下:

「不考慮繼承的話,我們可以認為乙個類有兩種不同的使用者:普通使用者和實現者。其中普通使用者編寫的**使用類的物件,這部分**只能訪問類的公有(介面)成員;實現者則負責編寫類的成員和友元**,成員和友元既能訪問類的公有部分,也能訪問類的私有(實現)部分。

如果進一步考慮繼承的話就會出現第三種使用者,即派生類。基類把它希望派生類能夠使用的部分宣告成受保護的。普通使用者不能訪問受保護的成員,而派生類及其友元仍舊不能訪問私有成員。

和其他類一樣,基類應該將其介面成員宣告為公有的;同事將屬於其實現的部分分成兩組:一組可供派生類訪問,另一組只能由基類的友元訪問。對於前者應該宣告為受保護的,這樣派生類就能在實現自己的功能時使用基類的這些操作和資料;對於後者應該宣告為私有的。」

在分析訪問許可權時,目前總結的竅門是,每派生繼承一次,派生類就相當於基類的一種物件,如果是public繼承,則派生類就相當於是基類的public物件,如果是private繼承,則是private物件。

所以public繼承時,派生類相當於是基類的public物件,基類就相當於是派生類的public部分或成員(private保持),那麼就可以使用基類的所有介面和public成員,但是不能使用private和protected成員,但是在派生類內部是可以使用基類的protected成員的。

private繼承時,派生類相當於基類的private物件,基類就相當於是派生類的private部分,所以就不能使用基類的所有介面。但是在派生類內部,private是不影響內部使用基類的資料的。

公有 私有和受保護成員的特點

公有 私有和受保護成員的特點公有 public 公有成員能被繼承,也可以被外部函式訪問。私有 private 私有成員不能被繼承,也不能被外部函式訪問。受保護 protect 受保護成員能夠被繼承,但是不能被外部函式訪問 在實現部分定義的成員預設是受保護成員 如 class a 而在實現部分的成員則...

類成員的保護方式

定義類,就是將該類的字段 屬性 事件 方法 類中的函式和過程 封裝在類的內部。這些字段 屬性 事件 方法就是類的成員。就物件而言,也是物件的資料和成員。類成員的保護模式也就是類成員訪問時的可見性,對於這些資料和成員的訪問,有以下四種保護 訪問 模式,分別使用下列關鍵字 1 private 私有的 在...

受保護的Hyper V環境和受保護的虛擬機器

無論是企業內部還是託管在idc或雲服務商的虛擬機器,如何保障執行的環境是安全的,虛擬機器是安全的 虛擬機器檔案裡的資料以及看到的監視器畫面 成為此篇文章和大家 研究的。比如您正在執行的虛擬機器,管理員是可以通過虛擬化平台通過監視器看到您的系統並操作的,比如關機,開啟,重啟等等操作,其次如果有別有用心...