将普通函数声明为友元函数

 1 //                          display 是一个 是类外定义的  并且 没有用  time 类进行限定的函数  ,  它 是 非成员函数 ,不属于任何类
 2 //          如果没有 在time类的定义体中  声明display 函数为 friend 函数  他是不能引用 time中的私有成员 hour minute sec的
 3 // 现在由于生命了 display 是time类 friend 函数 所以 display 函数可以引用  time 类中的 hour minute sec   但注意在引用这些私有成员的时候 必须加上对象名 
 4 // 因为  display 不是 time 类的成员函数 他们之间是 friend(朋友关系) 没有 this指针' 是不能默认引用 time类的 成员数据的  
 5 #include<iostream>
 6 using namespace std;
 7 class time
 8 {
 9 public:
10     time(int ,int ,int);                //  声明 构造 函数
11     friend void display (time &t);   //  声明 dispily 为 time类的  友元函数
12 private:
13     int hour;
14     int minute;
15     int sec;
16 };
17 time::time(int h,int m,int s)       //  定义构造函数 , 给hour minute sec赋初值
18 {
19     hour=h;
20     minute=m;
21     sec=s;
22 }
23 void display(time &t)    //  这是 普通的函数 ,形参t 是 time类对象的  引用
24 {
25     cout<<t.hour<<":"<<t.minute<<":"<<t.sec<<endl;
26 }
27 int main()
28 {
29     time t1(10,13,56);
30     display(t1);           // 调用函数   实参t1 是  time 类的 对象
31     return 0;
32 }
原文地址:https://www.cnblogs.com/A-FM/p/5235423.html