zoukankan      html  css  js  c++  java
  • 课程设计__友元

    ///友元
    ///友元有利于数据共享,但是破坏了类的封装性
    
    #include <iostream>
    
    using namespace std;
    
    class Time {
    public:
        Time (int h=10,int m=10,int s=10):hour(h),minute(m),sec(s) {}
        ///将普通函数放到类中,普通函数可以访问私有成员
        friend void display(Time &t);
    private:
        int hour;
        int minute;
        int sec;
    };
    
    void display(Time &t) {
        cout<<t.hour<<" "<<t.minute<<" "<<t.sec<<endl;
    }
    
    int main() {
        Time t(12,13,14);
        display(t);
        return 0;
    }
    View Code

    ///友元
    ///友元有利于数据共享,但是破坏了类的封装性
    
    #include <iostream>
    
    using namespace std;
    
    class Date;    ///对Date类提前声明
    
    class Time {
    public:
        Time (int h,int m,int s):hour(h),minute(m),sec(s) {};
        void display(Date &d);
    private:
        int hour;
        int minute;
        int sec;
    };
    
    class Date {
    public:
        Date(int m,int d,int y):month(m),day(d),year(y) {}
        ///声明Time中display函数为本类的友元成员函数,可以访问本类的私有成员
        friend void Time::display(Date &d);
    private:
        int month;
        int day;
        int year;
    };
    
    void Time::display(Date &d) {
        cout<<d.month<<" "<<d.day<<" "<<d.year<<endl;
        cout<<hour<<" "<<minute<<" "<<sec<<endl;
    }
    
    int main() {
        Time t(10,13,56);
        Date d(12,25,2016);
        t.display(d);
        return 0;
    }
    View Code
  • 相关阅读:
    不忘初心,方得始终
    【读书笔记】Windows核心编程
    工作心得
    2015年随记
    微信开发的黑魔法
    [cssTopic]浏览器兼容性问题整理 css问题集 ie6常见问题【转】
    获取微信用户openid
    Spring Boot应用开发起步
    一种在Java中跨ClassLoader的方法调用的实现
    H5语义化标签
  • 原文地址:https://www.cnblogs.com/TreeDream/p/5449581.html
Copyright © 2011-2022 走看看