C++(三十六)之电视机和遥控器友元类

我们今天设计的是简单的电视机和遥控器。

电视机类能控制电视开关机、调整音量和频道。

而这些功能在遥控器上面也可以完成,所以把遥控器设置成电视机

的友元类。这样遥控器也可以访问电视机内部的private成员。

下面我们上代码举例说明;

和之前的分文件编写一样,

我们把遥控器分成*.cpp *.h两个文件。

电视机也分成*.cpp *.h两个文件。

最后在main.cpp中调用。

在这里要注意,RemoteController类和TV类头文件相互包含,

所以在编译的时候,如果内部有声明对方的实例,

在声明的前面需要加上class 关键字,

否则会编译不过。

错误:error: ISO C++ forbids declaration of 'XXXX' with no type    这样的错误信息提示

 

下面上代码:

tv.h

//#pragma  once
#ifndef __TV_H 
#define __TV_H

#include <iostream>
#include <string>

#include "remoteController.h"

using namespace std;

 /**
  * TV类包含:
  *
  * 电视开关:
  *			打开电视
  * 		关闭电视 
  * 
  * 声音控制:
  *         最大声  audio MaxVal
  *         最小声  audio MinVal
  *         调大声  audio increase
  *         调小声  audio decrease
  * 
  * 频道控制:
  *			频道递增
  *         频道递减
  *         直接选择某个频道
  * 
  */

	

class TV{
	
	friend class RemoteController;  //声明友元类 
	
private:
    /*
	 *	const 成员变量只能在构造函数中做初始化,
	 * 	且在初始化的形式不能再函数体内,只能用
	 *  列表的方式来进行初始化。 
	 */
	const int tv_volume_MaxVal;  //最大音量	
	const int tv_volume_MinVal;    //最小音量 
	int tv_volume_val;				   //当前音量 
	
	const int tv_video_MaxChannel;  //频道上限 
	const int tv_video_MinChannel;   //频道下限
	int tv_video_channel;                //当前频道
	
	const bool tv_on;
	const bool tv_off;
	bool tv_status; 
	
	string tv_brand;
	
public:
	TV();

	
	TV(string brand);

	
	TV(TV &t);

	
	~TV();

	/* 以上是TV构造函数群和析构函数 */
	
	/*设置TV品牌*/
	void setTVBrand(string brand);

	
	/*获取TV品牌*/
	string getTVBrand(void);

	
	/*设置TV开机关机*/
	void setTVStatus(bool sta);

	
	/*获取TV当前状态(开机/关机)*/
	bool ge
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值