zoukankan      html  css  js  c++  java
  • 第二十章 友元类

    1.  友元类

    #include <iostream>
    using namespace std;
    class TV 
    {
    public:
        friend class Tele;            //这样Tele 就可以访问TV类了
        TV():on_off(off),volume(20),channel(3),mode(tv){}
    private:    
        enum{on,off};
        enum{tv,av};
        enum{minve,maxve=100};
        enum{mincl,maxcl=60};
        bool on_off;
        int  volume;
        int channel;
        int mode;
    };
    class Tele
    {
    public:
        void OnOFF(TV&t){t.on_off=(t.on_off==t.on)?t.off:t.on;}
        void SetMode(TV&t){t.mode=(t.mode==t.tv)?t.av:t.tv;}
        bool VolumeUp(TV&t);
        bool VolumeDown(TV&t);
        bool ChannelUp(TV&t);
        bool ChannelDown(TV&t);
        void show(TV&t)const;    
    };
    bool Tele::VolumeUp(TV&t)
    {
        if (t.volume<t.maxve)
        {
            t.volume++;
            return true;
        } 
        else
        {
            return false;
        }
    }
    bool Tele::VolumeDown(TV&t)
    {
        if (t.volume>t.minve)
        {
            t.volume--;
            return true;
        } 
        else
        {
            return false;
        }
    }
    bool Tele::ChannelUp(TV&t)
    {
        if (t.channel<t.maxcl)
        {
            t.channel++;
            return true;
        } 
        else
        {
            return false;
        }
    }
    bool Tele::ChannelDown(TV&t)
    {
        if (t.channel>t.mincl)
        {
            t.channel--;
            return true;
        } 
        else
        {
            return false;
        }
    }
    void Tele::show(TV&t)const
    {
        if (t.on_off==t.on)
        {
            cout<<"电视现在"<<(t.on_off==t.on?"开启":"关闭")<<endl;
            cout<<"音量大小为:"<<t.volume<<endl;
            cout<<"信号接收模式为:"<<(t.mode==t.av?"AV":"TV")<<endl;
            cout<<"频道为:"<<t.channel<<endl;
    
        } 
        else
        {
            cout<<"电视现在"<<(t.on_off==t.on?"开启":"关闭")<<endl;
        }
    
    }
    int main()
    {
        Tele t1;
        TV t2;
        t1.show(t2);
        t1.OnOFF(t2);
        t1.show(t2);
        cout<<"调大声音"<<endl;
        t1.VolumeUp(t2);
        cout<<"频道+1"<<endl;
        t1.ChannelUp(t2);
        cout<<"转换模式"<<endl;
        t1.SetMode(t2);
        t1.show(t2);
        return 0;
    }

    2.  嵌套类

  • 相关阅读:
    MYSQL之基本操作
    Python操作Mysql之基本操作
    编辑器
    iOS项目评估报告
    mac安装as配置
    屏幕适配
    CocoaPods配置步骤
    android网络监测
    获取通讯录
    json解析
  • 原文地址:https://www.cnblogs.com/zenseven/p/3803805.html
Copyright © 2011-2022 走看看