C++ 友元函式
阿新 • • 發佈:2019-02-14
#include <iostream>
using namespace std;
class girl
{
private:
char *name;
int age;
friend class boy; //宣告類boy是類girl的友元
public:
girl(char *n,int age):name(n),age(age){};
};
class boy
{
private:
char *name;
int age;
public:
boy(char *n,int age):name(n),age(age){};
void disp(girl &);
};
void boy::disp(girl &x) // 該函式必須在girl類定義的後面定義,否則girl類中的私有變數還是未知的
{
cout<<"boy's name is:"<<name<<",age:"<<age<<endl;
cout<<"girl's name is:"<<x.name<<",age:"<<x.age<<endl;
//藉助友元,在boy的成員函式disp中,藉助girl的物件,直接訪問girl的私有變數
//正常情況下,只允許在girl的成員函式中訪問girl的私有變數
}
void main()
{
boy b("aaa",8);
girl g("bbb",99);
b.disp(g);
}