c 的類成員許可權以及友元

2021-06-22 00:21:18 字數 618 閱讀 6127

c++中類是一種抽象的資料型別,裡面包含成員變數(一般定義為私有)和一些成員函式(一般定義為公有),對於使用者來說不需要了解類中具體的**,只需要知道類的功能以及如何使用就ok了。這樣就實現了類資料的隱藏和封裝。

類大致包含私有(private),公有(public),保護的(protected)。訪問許可權如下:

class預設的成員許可權為private(struct預設的成員許可權為public):

private:只有該類的成員函式可以訪問到;

public:對任何類都是公開的;

protected:只有該類以及類的子類中的成員函式可以訪問。

以上闡述的許可權也有乙個特殊的情況:友元函式和友元類。

如果類外的函式a需要訪問類中的私有成員,我們需要在類定義時在私有或者公有的部分宣告該函式;eg:

class b

也可以在private中宣告。是一樣的。友元並不是類的成員函式,在實現的時候不需要加「::」作用域。另外友元不能繼承。特別注意友元在實現的時候不能訪問類的私有成員。 

但它可以訪問類物件的私有成員。

如果類c想要訪問類b的所有成員,可以做如下宣告:

class b

這樣類c就是b的友元類。可以訪問類b中的所有成員。

C 友元函式 友元類 友元成員函式

眾所周知,c 控制對類物件私有部分的訪問。通常,公有類方法提供唯一的訪問途徑,但是有時候這種限制太嚴格,以至於不適合特定的程式設計問題。在這種情況下,c 提供了另外一種形式的訪問許可權 友元,友元有3種 友元函式 友元類 友元成員函式。通過讓函式成為類的友元 即 友元函式 可以賦予該函式與類的成員函...

友元(友元函式 友元類 類成員函式的友元)

friend 友元機制 允許乙個類將對其非公有成員的訪問許可權授予指定的函式或者類。我們可以將友元大致分為3類 友元函式 是指某些雖然不是類的成員函式,但是能夠訪問這個類的所有成員的函式。比如我們下列的 include class test friend void show test rhs 宣告 ...

友元函式 友元類 友元成員

友元 友元函式 友元類和友元成員函式 c 有些情況下,允許特定的非成員函式訪問乙個類的私有成員,同時仍阻止一般的訪問,這是很方便做到的。例如被過載的操作符,如輸入或輸出操作符,經常需要訪問類的私有資料成員。友元 frend 機制允許乙個類將對其非公有成員的訪問權授予指定的函式或者類,友元的宣告以fr...