您当前的位置:首页 > 计算机 > 编程开发 > VC/VC++

C++友元类解说

时间:01-10来源:作者:点击数:

不仅可以将一个函数声明为一个类的“朋友”,而且可以将一个类(例如B类)声明为另一个类(例如A类)的“朋友”。这时B类就是A类的友元类

友元类B中的所有函数都是A类的友元函数,可以访问A类中的所有成员。在A类的定义体中用以下语句声明B类为其友元类: friend B;

声明友元类的一般形式为

   friend 类名;

关于友元,有两点需要说明:

(1) 友元的关系是单向的而不是双向的。

(2) 友元的关系不能传递。

在实际工作中,除非确有必要,一般并不把整个类声明为友元类,而只将确实有需要的成员函数声明为友元函数,这样更安全一些。

关于友元利弊的分析: 面向对象程序设计的一个基本原则是封装性和信息隐蔽,而友元却可以访问其他类中的私有成员,不能不说这是对封装原则的一个小的破坏。但是它能有助于数据共享,能提高程序的效率,在使用友元时,要注意到它的副作用,不要过多地使用友元,只有在使用它能使程序精炼,并能大大提高程序的效率时才用友元。

#include <iostream>
using namespace std;
class Box
{
   public :
   Box(int ,int);
   int volume( );
   static int height; //把height定义为公用的静态的数据成员
   int width;
   int length;
};
Box::Box(int w,int len) //通过构造函数对width和length赋初值
{
   width=w;
   length=len;
}
int Box::volume( )
{
   return (height*width*length);
}
int Box::height=10; //对静态数据成员height初始化
1244
1245
int main( )
{
   Box a(15,20),b(20,30);
}

 

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门