天天看點

C++——類通路控制(public/protected/private)

轉載自 <http://blog.51cto.com/cnmtjp/36548>

C++中 public,protected, private 通路标号小結

第一:private, public, protected 通路标号的通路範圍。

private:隻能由1.該類中的函數、2.其友元函數通路。

不能被任何其他通路,該類的對象也不能通路。

protected:可以被1.該類中的函數、2.子類的函數、以及3.其友元函數通路。

但不能被該類的對象通路。

public:可以被1.該類中的函數、2.子類的函數、3.其友元函數通路,也可以由4.該類的對象通路。

注:友元函數包括3種:設為友元的普通的非成員函數;設為友元的其他類的成員函數;設為友元類中的所有成員函數。

第二:類的繼承後方法屬性變化。

private 屬性不能夠被繼承。

使用private繼承,父類的protected和public屬性在子類中變為private;

使用protected繼承,父類的protected和public屬性在子類中變為protected;

使用public繼承,父類中的protected和public屬性不發生改變; 

如下所示: 

                                 public:            protected:       private:

public繼承             public             protected        不可用 

protected繼承       protected       protected        不可用 

private繼承            private           private             不可用 

protected繼承和private繼承能降低通路權限。

來自 <http://blog.51cto.com/cnmtjp/36548>