訪問控制 protected 之 單元素模式設計

2021-09-30 05:09:32 字數 599 閱讀 7102

protected

在類外只能用公有類成員來訪問protected部分中的類成員。而派生類的成員可以直接訪問基類的protected成員。因此,對於外部世界來說,protected保護成員的行為與私有成員相似;但對於派生類來說,保護成員的行為與公有成員相似。

(最好對類資料成員採用私有訪問控制,而不要使用保護訪問控制)

單設計模式

例如,希望有且只有乙個類的例項返回給呼叫程式時,就可以使用單元素模式(singleton pattern)。這種類的宣告如下:

class class_a

;private:

...  };

通過將建構函式宣告為保護,並省略公有建構函式,可以防止區域性例項被建立:

int main()

gti()方法僅在第一次被呼叫時,建立class_a類的乙個例項。以這種方式構造的靜態物件一直有效,直到程式終止,此時這種靜態物件將自動被釋放。

class_a* pclass_a = class_a::git();

因為靜態變數在函式呼叫結束後仍儲存在記憶體中,所以以後再呼叫git時,將返回同乙個靜態物件的位址。

C 訪問控制之protected

本文的前提是使用public繼承。protected是修飾類成員的乙個關鍵字。其作用是使protected類成員不能夠從類外部訪問,在基類中,其與private的成員可看作具有相同的訪問限制,即只能被該基類的成員函式訪問。而protected成員還有乙個特點就是,通過public繼承得到的子類,其成...

C 類繼承4 訪問控制protected

public和private來控制對類成員的訪問。還存在另外乙個訪問類別,這種類別用關鍵字protected表示。protected和private相似,在類外只能用公有類成員來訪問protected部分中的類成員。但是它們之間的區別體現在基類派生的類中。派生類的成員可以直接訪問基類的保護成員,但不...

訪問修飾符protected

protected修飾符的確讓我有點困惑。例如 object的clone 方法就是protected修飾的。發現,有的時候可以訪問,但很多時候根本訪問不到。一 下面就以clone 方法為例 我在superclass類中,不重寫clone 只是訪問。如下 package cn public class...