C++之:友元类
一、文章来由
上一篇写了友元函数,这一次写一个姊妹篇,继续深入探究一下友元类。
二、定义
友元类的全部成员函数都是还有一个类的友元函数。都能够訪问还有一个类中的隐藏信息(包含私有成员和保护成员)。
当希望一个类能够存取还有一个类的私有成员时,能够将该类声明为还有一类的友元类。定义友元类的语句格式例如以下:
friend class 类名;
当中:friend和class是关键字,类名必须是程序中的一个已定义过的类。
三、样例
#include <iostream>
using namespace std;
class Radius
{
friend class Circle; //声明Circle为Radius的友元类
friend void Show_r(Radius &n); //声明Show_r为友元函数
public:
Radius(int x)
{
r = x;
}
~Radius()
{
}
private:
int r;
};
void Show_r(Radius &n)
{
cout<<"圆的半径为: "<<n.r<<endl; //调用Radius对象的私有成员变量r
}
class Circle
{
public:
Circle(){}
~Circle(){}
double area(Radius a)
{
s = a.r * a.r * 3.1415926; //调用Radius对象的私有成员变量r
return s;
}
private:
double s;
};
int main(int argc, char *argv[])
{
Radius objRadius(9);
Circle objCircle;
Show_r( objRadius );
cout<<"面积为:"<<objCircle.area(objRadius)<<endl;
return 0;
}