用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - c++代码库

c++ 友元类

2012-09-02 作者: 神马举报

[c++]代码库

#include <iostream>
using namespace std;
class TV
{
public:
	friend class Tele;
	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 );
	system ( "pause" );
}


网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...