C++10
C++友元函數(shù)和友元類
一個類中可以有 public、protected、private 三種屬性的成員,通過對象可以訪問 public 成員,只有本類中的函數(shù)可以訪問本類的 private 成員。現(xiàn)在,我們來補充介紹一個例外——友元(friend)。
fnend 的意思是朋友,或者說是好友,與好友的關(guān)系顯然要比一般人親密一些。有的家庭可能會這樣處理:客廳對所有來客開放,而臥室除了本家庭的成員可以進人以外,還允許好朋友進入。在C++中,這種關(guān)系以關(guān)鍵宇 friend 聲明,中文多譯為友元。友元可以訪問與其有好友關(guān)系的類中的私有成員,友元包括友元函數(shù)和友元類。如果您對友元這個名詞不習慣,可以按原文 friend 理解為朋友即可。
友元函數(shù)
在當前類以外定義的、不屬于當前類的函數(shù)也可以在類中聲明,但要在前面加 friend 關(guān)鍵字,這樣就構(gòu)成了友元函數(shù)。友元函數(shù)可以是不屬于任何類的非成員函數(shù),也可以是其他類的成員函數(shù)。
友元函數(shù)可以訪問當前類中的所有成員,包括 private 屬性的。
1) 將普通函數(shù)聲明為友元函數(shù)。
#include<iostream>
using namespace std;
class Student{
private:
char *name;
int age;
float score;
public:
Student(char*, int, float);
friend void display(Student &); //將display聲明為友元函數(shù)
};
Stud
總結(jié)
- 上一篇: C++9
- 下一篇: TotoiseSVN-小乌龟的使用方法总