對於c++類,可以定義三種不同訪問控制許可權的成員。這三種分別是public公有型別,private私有型別,protected保護型別。
友元介紹
類可以允許其他函式或者類訪問它的非公有成員,方法是令其成為友元
class count
; friend void fn1(count obj); //宣告友元函式
private:
int a;};
//定義友元函式
void fn1(count obj)
int main()
注意,友元函式訪問乙個類的私有成員和保護成員是通過物件來訪問
友元關係注意:
還可以令乙個類作為本類的友元,也可以把另乙個類的成員函式作為本類的友元
a中宣告b為友元,表示b可以訪問a 私有和保護成員
class count
;class ctime
}void fn2()
}private:
count obj[20]; //定義20個count物件
};int main()
乙個類指定另乙個類為友元類,相當於友元類的成員函式都成為了友元函式,可以訪問此類的所有成員。
當把另乙個類的成員函式作為本類友元時,必須注意彼此依賴關係,按順序宣告定義
class student; //這裡宣告student
//1.我們先定義teacher類,其中宣告clear函式
class teacher
int clear(student obj);
//這裡切記不能定義它,因為clear函式用到了student類的物件
};//2.接下來定義student類,其中包括對clear的友元宣告
class student
friend int teacher::clear(student obj);
private:
int m_score;
};//3.定義clear,這時候才能使用student成員
int teacher::clear(student obj)
int _tmain(int argc, _tchar* ar**)
注意順序,慢慢體會
————————————————————部分參考
C 許可權控制 及友元
c 訪問控制許可權 c 訪問控制許可權設定是針對類而言,而不是針對類的例項化成員。c primer 5.0中對public和private的說明。最開始理解訪問控制許可權時,結合了運算子過載的概念,遇到了下面問題 當初誤解這個例子,以為是許可權控制的問題 但現實並不是 該處語句需要在語句前面增加描述...
c 的類成員許可權以及友元
c 中類是一種抽象的資料型別,裡面包含成員變數 一般定義為私有 和一些成員函式 一般定義為公有 對於使用者來說不需要了解類中具體的 只需要知道類的功能以及如何使用就ok了。這樣就實現了類資料的隱藏和封裝。類大致包含私有 private 公有 public 保護的 protected 訪問許可權如下 ...
C 友元函式 友元類 友元成員函式
眾所周知,c 控制對類物件私有部分的訪問。通常,公有類方法提供唯一的訪問途徑,但是有時候這種限制太嚴格,以至於不適合特定的程式設計問題。在這種情況下,c 提供了另外一種形式的訪問許可權 友元,友元有3種 友元函式 友元類 友元成員函式。通過讓函式成為類的友元 即 友元函式 可以賦予該函式與類的成員函...