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 }