怎么实现友元函数??

2025-03-04 20:20:2280 次浏览

最佳答案

1.什么是友元函数?

一个类的私有数据成员通常只能由类的函数成员来访问,而友元函数可以访问类的私有数据成员,也能访问其保护成员

2. 友元函数的用处体现在哪里?

2.1 使用友元函数可提高性能,如:用友元函数重载操作符和生成迭代器类

2.2 用友元函数可以访问两个或多个类的私有数据,较其它方法使人们更容易理解程序的逻辑关系

3. 使用友元函数前应注意:

3.1 类的友元函数在类作用域之外定义,但可以访问类的私有和保护成员

3.2 尽管类定义中有友元函数原型,友元函数仍然不是成员函数

3.3 由于友元函数不是任何类的成员函数,所以不能用句柄(对象)加点操作符来调用

3.4 public, private, protected成员访问符与友员关系的声明无关,因此友元关系声明可在类定义的任何位置,习惯上在类定义的开始位置

3.5 友元关系是指定的,不是获取的,如果让类B成为类A的友元类,类A必须显式声明类B为自己的友元类

3.6 友元关系不满足对称性和传递性

3.7 如果一个友元函数想与两个或更多类成为友元关系,在每个类中都必须声明为友元函数

4. 注:由于C++属于混合语言,常在同一个程序中采用两种函数调用且这两种函数调用往往是相反的。类C语言的调用将

基本数据或对象传递给函数,C++调用则是将函数(或信息)传递给对象

 例子如下:

 #include

using namespace std;

class Car

{

friend void display(Car); //类"Car"的朋友display() //友元函数的声明

private:

int speed;

char color[20];

public:

void input( )

{

cout<<"Enter the color : ";

cin>>color;

cout<<"Enter the speed : ";

cin>>speed;

}

};

void display(Car x) //友元函数的定义

{

cout<<"The color of the car is : "<

cout<<"The speed of the car is : "<

}

int main( )

{

Car mine;

mine.input( ); //访问成员函数

display(mine); //友元函数的使用 //将对象"mine"传给友元函数

return 0;

 }

输出结果:

Enter the color: green 回车

Enter the speed: 100 回车

The color of the car is : green

The speed of the car is : 100

声明:知趣百科所有作品均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请在页面底部查找“联系我们”的链接,并通过该渠道与我们取得联系以便进一步处理。