友元出现的的意义就在于它可以让一个类得到访问这个类的私有成员的权限。下面的程序主要讲解的是如何将一个类作为另一个类的友元。友元的声明可以放在public或者是private,这两个都是可以的。也就是说友元的声明只要出现在类的定义的内部就可以了。
#include<iostream>
using namespace std;
class screen{
public:
friend class windowmgr;
screen(){}
screen(int a,int b)
{
height=a;
width=b;
}
void print()
{
cout<<height<<" "<<width<<endl;
}
private:
int height;
int width;
typedef int index;
friend class windowmgr;
};
class windowmgr{
public:
windowmgr& relocate(screen::index r,screen::index c,screen &s)
{
s.height+=r;
s.width+=c;
return *this;
}
};
int main()
{
screen go(1,2);
windowmgr ko;
ko.relocate(2,3,go);
go.print();
system("pause");
return 0;
}