友元函数不是类的成员函数,本质上仍是普通函数,却能像成员函数那样访问类的私有成员.
1.友元函数是定义在类外的普通函数,它不属于任何类,但需要在类的定义中加以声明,声明时只需在友元的名称前加上关键字friend
2.友元函数的声明可以放在类的私有部分,也可以放在公有部分
3.一个函数可以是多个类的友元函数,只需要在各个类中分别声明
简单规则:
1.如果函数要执行的任务只涉及一个对象,就使用成员函数
2.如果要执行的任务涉及对歌对象,就使用非成员函数
#include <iostream> using namespace std class DayOfYear { public: friend bool equal(DayOfYear date1,DayOfYear date2); DayOfYear(int the_month,int the_day); DayOfYear(); private: void check_date(); int month; int day; } int main() { } bool equal(DayOfYear date1,DayOfYear date2) { return (date1.month==date2.month && date1.day==date2.day) }