友元函数专业解释:友元函数是可以直接访问类的私有成员的非成员函数。 它是定义在类外的普通函数,它不属于任何类,但需要在类的定义中加以声明,声明时只需在友元的名称前加上关键字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; }
并补全了他没完善的东西,在此致敬一下。
正好连着两天没事,闲来之余研究一下也挺有意思的