友元函数是类定义中由关键字friend 修饰 的非成员函数。它不是本类中的成员函数,但是它的函数体中可以通过“对象.成员名”访问类中私有成员和保护成员。

    友元函数声明的格式为:

     friend 函数返回值类型 友元函数名(参数表);


应用举例:

#include"stdafx.h"
using namespace std;
class sample
{
	int m;
public:
	sample()
	{m=10;}
	sample(int k)
	{ m=k;}
	friend sample power(sample ObjC);
	void display()
	{
		cout<<"m="< 
  

友元函数_第1张图片

总结:在本类中由于power函数是友元函数,所以在该函数体中可以直接引用类的私有数据成员。语句“ObjB=power(ObjA)”传递的参数是sample类的对象,函数power返回值是sample类的对象,并将power函数的返回值赋值给该类对象ObjB,调用power函数就像调用普通函数一样,感觉该应用和定义的全局变量有着某种的异曲同工之妙,理解的还是不太透彻,希望以后看的时候,这种想法还是正确。

本文参考文献:C++程序设计简明综合教程 (朱从旭、刘卫国主编..)