C++快速入门 (十) 创建类

一,类的定义

(1). 什么是类
类是包含某种对象特性的集合,可以通过类来创建对象。如人(类) --> 具体的某个人(对象)。可以看些面向对象的文章。这里就不多阐述了。

(2). 创建类 和 类成员
使用关键字class 创建类。
  • class 类型 {  <类的作用域>  };
类可以包含,一般成员 和 函数成员,如下面的 Base

class  A
{
     int a;
     void fun1()
    {
        cout <<  "A::fun1" << endl;
    }
};


(3). 访问修饰符
某些成员函数是提供给类本身访问的, 而不应该暴露给外界,比如某个类要有“说话”这个功能,而要达到“说话”的效果,声带,气管,肺等协调工作的细节外界不用知道,只要在“说话”这个成员函数内部实现就行。

被声明在 public 作用域的为公有成员,可以被 外界 访问, 被声明在 private 作用域的为私有成员,只有类内部成员可以访问 , 如

class  Base
{
private :
     int a;  

public :
     virtual  void fun1()
    {
        cout <<  "Base::fun1" << endl;
    }
};


要点:
  • class 作用域默认 为 private
  • class 定义必须以 分号<;>结束
(4). 构造函数
类 的普遍用途是为 对象 服务的,既 我们让类中“生成”一个鲜活的可以被使用的对象。但要创建一个该类的对象就必须要初始化所有成员变量,并且这些成员的初始值也许在创建才能确定,于是C++就提供了一个创建对象时会第一个执行的“入口”函数,所有 构造 操作都可以在该函数内完成。这个函数也就顺理成章的被叫做 构造函数。要声明的构造函数必须与类同名且没有返回值部分

class  Base
{
private :
     int a;

public :
    Base( int  x)
    {
        a =  x ;
    }
};


</
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如 果你会一点C、C++语言,你就可以学习游戏编程了,开发真正的游戏!如果你学过一点C++更好,没学过也没关系。本课程教你从零基础开始开发7个完整的 游戏:Brainiac、Light Cycles、Henway、Battle Office、Meteor Defense、Space Out、Stunt Jumper。教程无KEY wmv版本,手机平板等移动设备均可观看! 第1部分 入门 第1章 学习开发游戏的基础知识 1.1 认识视频游戏 1.1.1 为什么人们如此沉迷于开发视频游戏 1.1.2 视频游戏的型 1.2 学习游戏设计的要素 1.2.1 提出基本思想 1.2.2 整理剧情 1.2.3 可视化图形 1.2.4 为游戏选择正确的声音 1.2.5 使用控制器控制游戏 1.2.6 确定游戏模式 1.3 面向对象的编程和游戏 1.3.1 理解OOP 1.3.2 在游戏中应用OOP 1.4 研究相关工具 1.4.1 编译器和开发环境 1.4.2 选择图形工具 1.4.3 选择声音和音乐工具 1.5 小结 1.6 亲身实践 第2章 创建游戏引擎 2.1 什么是游戏引擎 2.2 考虑游戏引擎的作用 2.2.1 将游戏分解为事件 2.2.2 建立游戏的计时机制 2.3 开发游戏引擎 2.3.1 游戏事件函数 2.3.2 GameEngine 2.4 开发Blizzard示例 2.4.1 编写程序代码 2.4.2 测试完成的程序 2.5 小结 2.6 游戏大变身 第3章 学习绘制基本图形 3.1 图形基础 3.1.1 理解图形坐标系统 3.1.2 学习颜色的基础知识 3.2 查看Windows中的图形 3.2.1 使用设备环境 3.2.2 使用画笔写 3.2.3 使用画刷绘制 3.2.4 使用位图绘制图像 3.2.5 使用调色板管理颜色 3.3 绘制窗口 3.3.1 绘制文本 3.3.2 绘制图元 3.3.3 使用画笔和画刷 3.4 开发Crop Circles示例 3.4.1 编写程序代码 3.4.2 测试完成的程序 3.5 小结 3.6 亲身实践 第4章 绘制图形图像 4.1 位图图像的基础知识 4.2 深入学习位图 4.3 开发位图 4.3.1 位图的工作原理 4.3.2 整合代码 4.4 开发Slideshow示例 4.4.1 编写程序代码 4.4.2 汇集资源 4.4.3 测试完成的程序 4.5 小结 4.6 游戏大变身 第2部分 与游戏玩家交互 第5章 使用键盘和鼠标控制游戏 5.1 游戏与用户输入 5.2 了解用户输入设备 5.2.1 接受键盘输入 5.2.2 响应鼠标 5.2.3 使用游戏杆交互 5.3 评估游戏的键盘输入 5.4 跟踪鼠标 5.5 向游戏引擎添加输入支持 5.5.1 添加键盘支持 5.5.2 添加鼠标支持 5.5.3 修改Bitmap 5.6 开发UFO示例 5.6.1 编写程序代码 5.6.2 测试完成的程序 5.7 小结 5.8 亲身实践 第6章 示例游戏:Brainiac 6.1 游戏的玩法 6.2 设计游戏 6.3 开发游戏 6.4 测试游戏 6.5 小结 6.6 游戏大变身 第7章 使用游戏杆改进输入 7.1 了解游戏杆的基础知识 7.2 校准游戏杆 7.3 追踪游戏杆的移动 7.4 向游戏引擎添加游戏杆支持 7.4.1 访问Win32多媒体功能 7.4.2 开发游戏杆代码 7.5 开发UFO 2示例 7.5.1 编写程序代码 7.5.2 测试完成的程序 7.6 小结 7.7 亲身实践 第8章 示例游戏:Light Cycles 8.1 游戏的玩法 8.2 设计游戏 8.3 开发游戏 8.4 测试游戏 8.5 小结 8.6 游戏大变身 第3部分 在游戏中使用子画面 第9章 使用于画面动画移动对象 9.1 理解动画的基础知识 9.1.1 动画和帧频 9.1.2 了解计算机动画 9.2 2D动画与3D动画 9.3 理解2D动画的型 9.3.1 基于帧的动画 9.3.2 基于形状的动画 9.4 将子画面动画应用于游戏 9.5 设计通用的子画面 9.6 创建Sprite 9.6.1 创建和破坏子画面 9.6.2 更新子画面 9.6.3 绘制子画面 9.7 开发Planets示例程序 9.7.1 编写程序代码 9.7.2 测试完成的程序 9.8 小结 9.9 亲身实践 第10章 管理子画面 10.1 了解管理子画面的需求 10.2 设计子画面管理器 10.3 向游戏引擎添加子画面管理器 10.3.1 改进Sprite 10.3.2 增强游戏引擎 10.4 使用双重缓存消除闪烁 10.5 开发Planets 2示例 10.5.1 编写程序代码 10.5.2 测试完成的程序 10.6 小结 10.7 游戏大变身 第11章 示例游戏:Henway 11.1 游戏的玩法 11.2 设计游戏 11.3 开发游戏 11.4 测试游戏 11.5 小结 11.6 游戏大变身 第4部分 使用声音和音乐 第12章 播放数字声音效果 12.1 理解数字声音 12.2 了解Windows波形声音 12.3 了解声音工具 12.3.1 Sony Sound Forge 12.3.2 Adobe Audition 12.3.3 廉价的声音编辑器 12.4 创建和编辑声音 12.5 查找声音和音乐 12.6 访问波形声音 12.7 播放波形声音 12.7.1 播放文件中的波形声音 12.7.2 播放作为资源的波形声音 12.7.3 循环播放波形声音 12.7.4 停止播放波形声音 12.8 开发Brainiac 2示例程序 12.8.1 编写程序代码 12.8.2 组合资源 12.8.3 测试完成的游戏 12.9 小结 12.10 亲身实践 第13章 播放MIDI音乐 13.1 感受MIDI音乐 13.2 理解Windows媒体控制接口 13.3 使用MCI播放MIDI音乐 13.3.1 打开MIDI设备 13.3.2 播放MIDI歌曲 13.3.3 暂停MIDI歌曲 13.3.4 关闭MIDI设备 13.4 向游戏引擎添加MIDI音乐支持 13.5 开发Henway 2示例程序 13.5.1 编写程序代码 13.5.2 测试完成的游戏 13.6 小结 13.7 亲身实践 第14章 示例游戏:Battle Office 14.1 游戏的玩法 14.2 设计游戏 14.3 开发游戏 14.4 测试游戏 14.5 小结 14.6 亲身实践 第5部分 高级动画 第15章 实现子画面外观动画 15.1 再次介绍帧动画 15.2 设计动画子画面 15.3 向游戏引擎添加动画子画面支持 15.3.1 只绘制位图的一部分 15.3.2 对Sprite实现动画 15.4 开发Battle Office 2示例程序 15.4.1 编写程序代码 15.4.2 测试完成的游戏 15.5 小结 15.6 游戏大变身 第16章 创建子画面背景 16.1 了解游戏背景的重要性 16.2 了解游戏背景的型 16.2.1 纯色背景 16.2.2 图像背景 16.2.3 动画背景 16.2.4 滚动背景 16.3 向游戏引擎添加背景支持 16.3.1 创建基本的背景 16.3.2 创建动画背景 16.4 开发Roids示例 16.4.1 编写程序代码 16.4.2 测试完成的游戏 16.5 小结 16.6 亲身实践 第17章 示例游戏:Meteor Defense 17.1 游戏的玩法 17.2 设计游戏 17.3 增强游戏引擎中的子画面 17.4 开发游戏 17.5 测试游戏 17.6 小结 17.7 游戏大变身 第6部分 让游戏拥有大脑 第18章 教游戏思考 18.1 理解人工智能 18.2 了解游戏AI的型 18.2.1 漫游AI 18.2.2 行为AI 18.2.3 策略AI 18.3 开发AI策略 18.4 开发Roids 2示例程序 18.4.1 编写程序代码 18.4.2 测试完成的程序 18.5 小结 18.6 亲身实践 第19章 示例游戏:Space Out 19.1 游戏的玩法 19.2 设计游戏 19.3 向游戏引擎中添加另一个子画面特性 19.4 开发游戏 19.5 测试游戏 19.6 小结 第7部分 增添游戏的趣味性 第20章 使用闪屏增添游戏的活力 20.1 闪屏的重要性 20.2 了解闪屏 20.3 创建Space Out 2游戏 20.3.1 编写游戏代码 20.3.2 测试完成的游戏 20.4 小结 20.5 亲身实践 第21章 使用演示模式展示游戏 21.1 什么是演示模式 21.2 演示模式的细节 21.3 开发Space Out 3游戏 21.3.1 编写游戏代码 21.3.2 测试完成的游戏 21.4 小结 21.5 游戏大变身 第22章 记录高分 22.1 记录得分的重要性 22.2 确定高分数据模型 22.3 存储和检索高分数据 22.4 开发Space Out 4游戏 22.4.1 编写游戏代码 22.4.2 测试完成的游戏 22.5 小结 22.6 亲身实践 第8部分 附加练习 第23章 使用滚动背景更改远景 23.1 什么是滚动背景 23.1.1 横向滚动的背景 23.1.2 纵向滚动的背景 23.1.3 视差滚动背景 23.2 理解滚动背景的工作原理 23.3 向游戏引擎添加滚动背景支持 23.3.1 创建背景图层 23.3.2 创建滚动背景 23.4 开发Wanderer示例 23.4.1 编写程序代码 23.4.2 测试完成的程序 23.5 小结 23.6 游戏人变身 第24章 示例游戏:Stunt Jumper 24.1 游戏的玩法 24.2 设计游戏 24.3 开发游戏 24.4 测试游戏 24.5 小结 24.6 游戏大变身 24.7 亲身实践
第 1 章和第2 章形成了一个独立完整的C++介绍和概述 第一篇的目的是使我们快速地 理解C++支持的概念和语言设施 以及编写和执行一个程序所需要的基础知识 读完这部分 内容之后 你应该对 C++语言有了一些认识 但是还谈不上真正理解C++ 这就够了 那是 本书余下部分的目的 第 1 章向我们介绍了语言的基本元素 内置数据型 变量 表达式 语句以及函数 它将介绍一个最小的 合法的 C++程序 简要讨论编译程序的过程 介绍所谓的预处理器 preprocessor 以及对输入和输出的支持 它给出了多个简单但却完整的 C++程序 鼓励 读者亲自编译并执行这些程序 第 2 章介绍了 C++是如何通过机制 为基于对象和面向对 象的程序设计提供支持的 同时通过数组抽象的演化过程来说明这些设计思想 另外 它简 要介绍了模板 名字空间 异常处理 以及标准库为一般容器型和泛型程序设计提供的支 持 这一章的进度比较快 有些读者可能会觉得难以接受 如果是这样 我们建议你跳过这 一章 以后再回过头来看它 C++的基础是各种设施 它们使用户能够通过定义新的数据型来扩展语言本身 这些 V 译序 新型可以具有与内置型一样的灵活性和简单性 掌握这些设施的第一步是理解基本语言 本身 第 3 章到第 6 章 第二篇 在这个层次上介绍了 C++语言 第 3 章介绍了C++语言预定义的内置和复合数据型 以及 C++标准库提供的 string complex vector 数据型 这些型构成了所有程序的基石 第 4 章详细讨论了 C++语言 支持的表达式 比如算术 关系 赋值表达式 语句是 C++程序中最小的独立单元 它是第 5章的主题 C++标准库提供的容器型是第 6 章的焦点 我们不是简单地列出所有可用的 操作 而是通过一个文本查询系统的实现 来说明这些容器型的设计和用法 第 7章到第12 章 第三篇 集中在 C++为基于过程化的程序设计所提供的支持上 第 7 章介绍C++函数机制 函数封装了一组操作 它们通常形成一项单一的任务 如 print() 名 字后面的括号表明它是一个函数 关于程序域和变量生命期的概念 以及名字空间设施的 讨论是第 8章的主题 第 9 章扩展了第 7 章中引入的关于函数的讨论 介绍了函数的重载 函数重载允许多个函数实例 它们提供一个公共的操作 共享一个公共的名字 但是 要求 不同的实现代码 例如 我们可以定义一组 print()函数来输出不同型的数据 第 10 章介 绍和说明函数模板的用法 函数模板为自动生成多个函数实例 可能是无限多个 提供了一 种规范描述 prescription 这些函数实例的型不同 但实现方式保持不变 C++支持异常处理设施 异常表示的是一个没有预料到的程序行为 比如所有可用的程 序内存耗尽 出现异常情况的程序部分会抛出一个异常——即程序的其他部分都可以访问到 程序中的某个函数必须捕获这个异常并做一些必要的动作 对于异常处理的讨论跨越了两章 第11 章用一个简单的例子介绍了异常处理的基本语法和用法 该例子捕获和抛出一个型 class type 的异常 因为在我们的程序中 实际被处理的异常通常是一个面向对象层次 结构的对象 所以 关于怎样抛出和处理异常的讨论一直继续到第 19 章 也就是在介绍面 向对象程序设计之后 第 12 章介绍标准库提供的泛型算法集合 看一看它们怎样和第 6章的容器型以及内 置数组型互相作用 这一章以一个使用泛型算法的程序设计作为开始 第 6 章介绍的iterator 迭代器 在第 12 章将进一步讨论 因为它们为泛型算法与实际容器的绑定提供了粘合剂 这一章也介绍并解释了函数对象的概念 函数对象使我们能够为泛型算法中用到的操作符 比 如等于或小于操作符 提供另一种可替换的语义 关于泛型算法在附录中有详细说明 并带 有用法的示例 第 13 章到第 16 章 第四篇 的焦点集中在基于对象的程序设计上——即创建独立的抽 象数据型的那些设施的定义和用法 通过创建新的型来描述问题域 C++允许程序员 在写应用程序时可以不用关心各种乏味的簿记工作 应用程序的基本型可以只被实现一次 而多次被重用 这使程序员能够将注意力集中在问题本身 而不是实现细节上 这些封装数 据的设施可以极大地简化应用程序的后续维护和改进工作 第 13章集中在一般的机制上 怎样定义一个 信息隐藏的概念 即 把的公有 接口同私有实现分离 以及怎样定义并封装一个的对象实例 这一章还有关于域 嵌 套 作为名字空间成员的讨论 第 14 章详细讨论 C++对象的初始化 析构以及赋值而提供的特殊支持 为了支持 这些特殊的行为 需要使用一些特殊的成员函数 分别是构造函数 析构函数和拷贝赋值操 作符 这一章我们还将看一看按成员初始化和拷贝的主题 即指一个对象被初始化为或者 VI 译序 赋值为该的另一个对象 以及为了有效地支持按成员初始化和拷贝而提出的命名返回值 named return value 扩展 第 15 章将介绍特有的操作符重载 首先给出一般的概念和设计考虑 然后介绍一些 特殊的操作符 如赋值 下标 调用以及特有的 new和 delete操作符 这一章还介绍了 的友元 它对一个具有特殊的访问特权 及其必要性 然后讨论用户定义的转换 包括底 层的概念和用法的扩展实例 这一章还详细讨论了函数重载解析的规则 并带有代码示例说 明 模板是第 16 章的主题 模板是用来创建的规范描述 其中的包含一个或多个 参数化的型或值 例如 一个 vector 可以对内含的元素型进行参数化 一个 buffer 可以对内含的元素型以及缓冲区的大小进行参数化 更复杂的用法 比如在分布式计算中 IPC接口 寻址接口 同步接口等 都可以被参数化 这一章讨论了怎样定义模板 怎样 创建一个模板特定型的实例 怎样定义模板的成员 成员函数 静态成员和嵌套型 以及怎样用模板来组织我们的程序 最后以一个扩展的模板的例子作为结束 面向对象的程序设计和 C++的支持机制是第17 18 19 和 20 章 第五篇 的主题 第 17章介绍了C++对于面向对象程序设计主要要素的支持 继承和动态绑定 在面向对象的程 序设计中 用父/子关系 也称型/子型关系 来定义 有共同行为的各个 不用 重新实现共享特性 它可以继承了父的数据和操作 子或者子型只针对它与父不同 的地方进行设计 例如 我们可以定义一个父 Employee 以及两个子型 TemporaryEmpl 和 Manager 这些子型继承了Employee 的全部行为 它们只实现自己特有的行为 继承的第二个方面 称为多态性 是指父型具有 引用由它派生的任何子型 的能 力 例如 一个 Employee 可以指向自己的型 也可以指向 TemporaryEmpl 或者Manager 动态绑定是指 在运行时刻根据多态对象的实际型来确定应该执行哪个操作 的解析能力 在C++中 这是通过虚拟函数机制来处理的 第 17 章介绍了面向对象程序设计的基本特性 这一章说明了如何设计和实现一个Query 层次结构 用来支持第 6 章实现的文本查询系统 第 18章介绍更为复杂的继承层次结构 多继承和虚拟继承机制使得这样的层次结构成 为可能 这一章利用多继承和虚拟继承 把第 16 章的模板例子扩展成一个三层的模板层 次结构 第 19 章介绍 RTTI 运行时刻型识别 设施 使用 RTTI我们的程序在执行过程中可 以查询一个多态对象的型 例如 我们可以询问一个 Employee对象 它是否实际指向 一个Manager型 另外 第19章回顾了异常处理机制 讨论了标准库的异常层次机构 并说明了如何定义和处理我们自己的异常层次结构 这一章也深入讨论了在继承机制下重 载函数的解析过程 第 20 章详细说明了如何使用 C++的iostream输入/输出库 它通过例子说明了一般的数 据输入和输出 说明了如何定义特有的输入输出操作符实例 如何辨别和设置条件状态 如何对数据进行格式化 iostream库是一个用虚拟继承和多继承实现的层次结构 本书以一个附录作为结束 附录给出了每个泛型算法的简短讨论和程序例子 这些算法 按字母排序 以便参考 最后 我们要说的是 无论谁写了一本书 他所省略掉的 往往与他所讲述的内容一样 VII 译序 重要 C++语言的某些方面 比如构造函数的工作细节 在什么条件下编译器会创建内部临 时对象 或者对于效率的一般性考虑 虽然这些方面对于编写实际的应用程序非常重要 但 是不适合于一本入门级的语言书籍 在开始写作本书第三版之前 Stan Lippman写的 Inside the C++ Object Model 参见本前言最后所附的参考文献中的 LIPPMAN96a 包含了许 多这方面的内容 当读者希望获得更详细的说明 特别是讨论基于对象和面向对象的程序设 计 时 本书常常会引用该书中的讨论 本书故意省略了 C++标准库中的某些部分 比如对本地化和算术运算库的支持 C++标 准库非常广泛 要想介绍它的所有方面 则远远超出了本书的范围 在后面所附的参考文献 中 某些书更详细地讨论了该库 见 MUSSER96 和 STROUSTRUP97 我们相信 在 这本书出版之后 一定还会有更多的关于 C++标准库各个方面的书面世
Dev C 是一个免费的集成开发环境(IDE),用于C和C++语言的编程。它提供了一个直观和友好的用户界面,使得新手可以快速上手。 首先,要使用Dev C,你需要从官方网站上下载并安装它。安装过程非常简单,只需按照向导的指示进行操作即可。 一旦安装完成,你就可以打开Dev C,并开始一个新的项目。在菜单栏中选择“文件”>“新建”>“项目”,然后选择你想要创建型,比如"控制台项目"。在弹出的对话框中,给项目起个名字并选择保存的路径。点击“确定”,一个新的项目就创建好了。 在项目中,你可以通过点击左侧的文件夹图标,查看项目的源文件和头文件。在主编辑区中打开你要编辑的文件,然后开始编写代码。 在编写代码时,你可以使用Dev C提供的自动完成和代码提示功能来加快编程速度。当你输入代码时,Dev C会自动显示可能的选项,并提供一些内置代码模板以供选择。 完成代码编写后,点击菜单栏中的“编译”>“编译与运行”,Dev C将会编译你的代码并运行。如果代码没有错误,你将能够在控制台窗口中看到代码的输出结果。 此外,在Dev C中还提供了调试功能,你可以在运行代码时进行断点设置,单步执行或查看变量值等操作,帮助你找到代码中的错误。 总而言之,虽然Dev C可能不是最先进的开发环境,但对于快速入门C和C++编程来说是非常适合的工具。希望这些简单的介绍能够帮助你开始学习和使用Dev C。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值