游戏开发之C++类和对象相关概念实例(C++)
游戏开发之C++类和对象相关概念实例(C++)‘
问题:
有一个电视类,功能: 开关机状态、音量、频道(电视机只能一次调一个频道、只能调整频道 )。
遥控器类:拥有电视机类的所有功能,可以调整至指定频道。
具体实现如下:
#include <iostream>namespace
{//电视类class Television{friend class RomoteControl;friend std::istream& operator>>(std::istream& in, Television& television_);private:int _bSwitch;int _volume;int _currentChannel;public:Television() :_bSwitch(1), _volume(30), _currentChannel(1) {}void DisplayStatus(){std::cout << "当前状态:" << _bSwitch;std::cout << " 当前频道:" << _currentChannel;std::cout <<" 当前音量:"<< _volume << std::endl;}};//遥控器类class RomoteControl{public:RomoteControl() :_bElectric(1) {}void SetSwitch(Television &television_){television_._bSwitch = television_._bSwitch == 0 ? 1 : 0;}int AddVolume(Television &television_){if (television_._bSwitch == 0)return 0;if (television_._volume < 100)television_._volume++;return 1;}int ReduceVolume(Television &television_){if (television_._bSwitch == 0)return 0;if (television_._volume > 0)television_._volume--;return 1;}int SetCurrentChannel(Television &television_){if (television_._bSwitch == 0)return 0;std::cin >> television_._currentChannel;return 1;}private:int _bElectric;};std::istream& operator>>(std::istream& in, Television& television_){in >> television_._currentChannel;return in;}
}int main()
{Television television;RomoteControl romoteControl;romoteControl.AddVolume(television);television.DisplayStatus();romoteControl.ReduceVolume(television);television.DisplayStatus();romoteControl.SetSwitch(television);television.DisplayStatus();romoteControl.SetSwitch(television);television.DisplayStatus();romoteControl.SetCurrentChannel(television);television.DisplayStatus();return 0;
}
游戏开发之C++类和对象相关概念实例(C++)相关推荐
- DirectX游戏开发之3D角色动起(下)
DirectX游戏开发之3D角色动起(下) 直接先上图吧! 动作idle 动作attack 动作walk 动作run 看,多动作的模型搞下来了.原则上只要在此基础上略做修改就可以实现3d游戏的基本制作 ...
- [整理]Unity3D游戏开发之Lua
原文1:[Unity3D]Unity3D游戏开发之Lua与游戏的不解之缘(上) 各位朋友,大家好,我是秦元培,欢迎大家关注我的博客,我地博客地址是blog.csdn.net/qinyuanpei.如果 ...
- DirectX游戏开发之2D文字的实现
DirectX游戏开发之2D文字的实现 文字是承载信息最有效的载体之一,各种游戏程序都离不开文字的显示.对于3D文字来说,2D文字有其渲染的高效性和实现的简洁性. 2D文字的显示无论在写2D游戏还是在 ...
- 开发中的“软”与“硬”:高画质移动游戏开发之道
摘要:游戏的效果不仅与游戏引擎的渲染相关,与硬件优化也有千丝万缕的联系.一款基于芯片优化的移动游戏界面,甚至可以堪比视频游戏的视觉效果.高通半导体事业部资深经理刘晓光从软硬件两个层面分享了移动游戏开发 ...
- 游戏开发之U3D实现技能图标冷却的效果
游戏开发之U3D实现技能图标冷却的效果 --本次使用的NGUI插件. 制作思路:NGUI插件里面有个UISprite组件,在它上面有个属性叫Type,改变相应的Type类型有不同的作用,本次使 ...
- 游戏开发之U3D插件EasyTouch5.x使用
游戏开发之U3D插件EasyTouch5.x使用 本篇只讲EasyTouch5.x的使用,不讲源码.本来想把EasyTouch5.x的使用手册翻译一遍,想来也是没那个时间. 第一 ...
- libGDX游戏开发之Box2D(十四)
libGDX游戏开发之Box2D(十四) libGDX系列,游戏开发有unity3D巴拉巴拉的,为啥还用java开发?因为我是Java程序员emm-国内用libgdx比较少,多数情况需要去官网和goo ...
- JAVA游戏开发之FPS精准控制
目录 JAVA游戏开发之FPS精准控制... 1 1 概述... 2 1.1 编写目的... 3 2 FPS精准控制... 3 2.1 FPS描述. ...
- 微信小游戏开发之CocosCreator多分辨率场景适配方案
主题 Cocos Creator不同手机分辨率的背景图像和场景内容适配 特别说明 CocosCreator微信小游戏开发系列文章,是我在逐步开发过程中,基于官方文档之上,记录一些重点内容,以及对官方文 ...
- java打字游戏和解析_java类与对象案例之打字游戏
类与对象案例-童年回忆之打字游戏 一.玩家类 二.等级类 三.游戏类 四.等级地图 五.测试类 这次要做的案例是一个打字游戏的案例,相信大家小时候都玩过金山打字通的警察抓小偷和飞机大战,这次的案例是类 ...
最新文章
- 图像浏览软件_FastStone Image Viewer5.5版
- 如何使用Node.js获取当前脚本的路径?
- 黑盒测试方法_黑盒测试方法 收集
- 用 JMX 检测应用程序
- python温度转换程序_用Python程序温度转换实例
- UVa 1354 天平难题 枚举二叉树
- LeetCode--palindrome-number回文数
- 阿里云Kubernetes服务上从零搭建GitLab+Jenkins+GitOps应用发布模型的实践全纪录
- C#LeetCode刷题之#4-两个排序数组的中位数(Median of Two Sorted Arrays)
- Qgis3.2编译移植成功文档完整版
- crop和resize操作区别
- 某听书网站系统漏洞,利用抓包拼接方式获取网站资源
- Eclipse中的,ER图生成工具:【ERMaster】
- donet framework4.X==windows窗体应用新建项目,通过System.Data.SqlClient连接sqlserver进行查询
- 安卓c语言hook,C语言hook技术实现木马功能-盗QQ密码
- vertica MySQL_MySQL数据库之Vertica数据库的用法
- 嵌入式 IIC(I2C)协议
- puzzle(0711)《机关排布》接水管、搭桥
- 关于NCT75DMR2G的使用总结(温度传感器)
- 是时候来了解android7了:shortcuts(快捷方式)
热门文章
- 【python】Tkinter窗口可视化(二)
- numpy-np.concatenate
- 机器学习基础算法11-Logistic回归-ROC和AUC分类模型评估-实例
- 我们需要什么样的计算
- 推荐系统:NDCG评价指标
- 文件自动备份和同步bypy和syncthing
- python循环输入数组_python数组循环处理方法
- php 工厂模式作用,PHP工厂模式的好处概述
- Android setBackgroundDrawable()过时解决办法
- 1031 查验身份证 (15 分)—PAT (Basic Level) Practice (中文)