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


     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 }
  • 相关阅读:
    amuse ui(web插件,js插件,css样式)?
    解决ajax重复提交问题?
    AJAX防重复提交的办法总结?
    iOS中发送HTTP请求的方案
    巧用Xode中的代码块(转)
    SVProgressHUD进度条蒙版
    NSTimer scheduledTimerWithTimeInterval与timerWithTimeInterval、initWithFireDate的区别
    小结RunLoop
    初学RunLoop
    CocoaPods安装及使用详情
  • 原文地址:https://www.cnblogs.com/A-FM/p/5235423.html
Copyright © 2020-2023  润新知