您的位置:首页 > 编程语言 > C语言/C++

关于C++中友元类和友元函数的示例讲解

2008-02-08 22:22 176 查看
简单的讲 :把类外部的类或函数声明为友元类和友元函数,使其能直接访问类中的私有成员。

格式: friend 类 或 函数 声明

//此语句可以放在类中的任意位置,与访问权限保留字无关。

需要注意几个方面:

1.友元关系是不可以传递的。

比方说你是我的友元而Joe是你的友元,但这并不意味着Joe是我的友元。

2.友元关系不能继承。

3.友元关系不是互通。

把class A设置为class B的友元并不会使得class B成为class A的友元,也许你愿意把你的秘密告诉我,但是,这并不意味着我愿意把我的秘密告诉你。

具体的用法详细见下面的示例:


#include <cstdlib>


#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;




system("PAUSE");


return EXIT_SUCCESS;


}



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: