友元是C++中最基本的运用手段。友元函数可以使非成员函数访问类的所有私有成员和保护乘员。下面介绍三种最基本的友元使用方式:
1)非成员函数友元
#include<iostream>
using namespace std;
class myclass{
int a,b;
public:
XXX;
friend int sum(myclass x);
};
int sum(myclass x)
{
return x.a+x.b;
}
int main( )
{
myclass n;
cout<<sum(n);
}
2)一个类的友元可以是另外一个类的成员
class c2;
class c1{
int status;
public:
int idle(c2 b);
};
class c2{
int status;
public:
friend int c1::idle(c2 b);
};
int c1::idle(c2 b)
{
if(status||b.status) return 0;
return 1;
}
3)友元类:一个类可以是另一个类的友元
class TwoValues{
int a;
int b;
public:
TwoValues(int i;int j){a=i;b=j;}
friend class Min;
};
class Min{
public:
int min(TwoValues x);
};
int Min::min(TwoValues x)
{
return x.a<x.b?x.a:x.b;
}