《游戏引擎架构》知识点合集-3.游戏软件工程基础

本文概述了面向对象编程的关键概念,如类、对象、封装、继承、多态,以及在C++中如何处理数据类型、内存管理和优化技术,包括流水线、缓存策略和超纯量CPU的应用,强调了编码标准和设计模式的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

跳过第二章直接梳理第三章的原因是第二章主要讲的是工具向内容,一方面详细地介绍了版本控制软件Subversion/TortoiseSVN和IDE:Visual Studio的使用技巧,另一方面简单介绍了函数时间占用相关剖析器,内存泄漏、内存损坏的原理和相应的检测工具。此方面工具向内容不做过多搬运,感兴趣的小伙伴可自行查阅第二章内容。

面向对象编程

类/对象

类是属性和行为的集合(class includes variables and functions)。描述类的各别实例即是对象。比如一条叫阿旺的狗是“dog”类的一个实例。类和实例之间存在一对多的关系。

封装

对象向外提供有限接口,隐藏内部状态和实现细节。

继承

延申现有的类用来定义新类。新类可延申/修改现有类的数据/接口/行为。延伸类和现有类是“is-a”关系。比如圆形是一个形状,狗是一个动物。

书中将这一概念简单延申至“多重继承”的概念。多重继承指新类继承至一个或以上的父类。这种设计会造成代码混淆且复杂(继承结构由树状变成图状),其中一个原因则是如果A继承自B和C,而B和C继承自同一个类D,则会出现菱形继承的问题,导致实例化A时会实例化两个D。多重继承同样会使类型转换变得复杂。因此尽量避免使用多继承,或者只允许多重继承一些简单且无父类的类。

多态

多态指用单一共同接口操作不同类型的对象。比如调用Shape.Draw()来操作继承自Shape的Circle、Rectangle,它们即便不是相同的绘制方法,却可以通过调用同一个接口来实现。

合成与聚合

合成/聚合:has-a/use-a关系。比如太空船有一台引擎,汽车有一台发动机。善用合成/聚合,避免滥用继承。

设计模式

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值