友元函数专业解释:友元函数是可以直接访问类的私有成员的非成员函数。 它是定义在类外的普通函数,它不属于任何类,但需要在类的定义中加以声明,声明时只需在友元的名称前加上关键字friend。
在我看来,友元函数就是提供一种方式,让外部的函数能够访问的了内部类的私有变量的一种形式,破坏了封装性,所以本人比较少看到公司项目用到这个方式。
示例代码:
#include "stdafx.h"
class Budget;
class Aux{
private:
float auxBudget;
public:
Aux(){
auxBudget = 0;//初始化参数
}
float getAuxBudget(){
return auxBudget;
}
//函数访问
void addBudget(float,Budget &);
};
class Budget{
private:
float allBudget;
public:
friend void Aux::addBudget(float,Budget &);
};
// FriendFunc.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "frienddemo.h"
int _tmain(int argc, _TCHAR* argv[])
{
return 0;
}
void Aux::addBudget(float b,Budget & bud)
{
auxBudget += b;
bud.allBudget = auxBudget;
}
示例代码参考了:https://blog.csdn.net/m0_37655357/article/details/89322984
并补全了他没完善的东西,在此致敬一下。
正好连着两天没事,闲来之余研究一下也挺有意思的