"cocos2d-x面试题总结"
本篇总结了cocos2d-x面试的常见问题,涵盖了C++基础知识、cocos2d-x特性和实现机理等方面。下面是根据给定的文件信息生成的相关知识点:
一、C++基础知识
1. C和C++的区别:C++在C的基础上拓展了面向对象的内容,如类/虚函数/继承/模板等等。
2. C++的特点:A. C++是C语言的超集,保持了C语言的简洁、高效、和接近汇编语言等特点;B. C++保持了与C语言的兼容;C. 支持面向对象程序设计的特征;D. C++程序在可重用性、可扩展性、可维护性和可靠性等方面都较C语言得到了提高。
3. 函数模板:函数模板实际上就是建立一个通用的函数,其函数类型和形参类型不具体指定,用一个虚拟的类型来代表。
4. 指针:指针也是一种变量,普通的变量包含的是实际的数据,而指针变量包含的是内存中的一块地址。
5. 指针的使用场景:A. 当你需要获取地址时,必须使用指针;B. 当在传递参数时,多数要使用指针;C. 使用new关键字创建的内存必须使用一个指针指向操作。
6. 指针的优点:A. 指针可以申请不连续的数据存储空间;B. 使用指针还可以创建数据结构,如链表、二叉树。
7. 面向对象:对同类的事物抽象出相同的部分,形成类。类中的大多数数据只能用本类的方法进行处理,类通过一个简单的外部接口与外界发生关系,对象与对象之间通过消息进行通信。
8. 引用和指针的区别:A. 指针是一个变量,只不过这个变量存储的是一个地址,指向内存中的一个存储单元;B. 引用跟原来的变量实质上是一个东西,只不过是原变量的一个别名而已。
二、cocos2d-x特性
1. 内存管理机制:cocos2d-x采用了自动内存管理机制。
2. 跨平台实现:cocos2d-x使用了跨平台的实现机理,可以在不同的平台下使用。
3. cocos2d-x 3.0版本特性:A. 把之前版本中使用的很多OC模式改为了C++模式;B. 去掉所有CC前缀,因为已经有了cocos2d这个命名空间了;C. 增加了模板容器cocos2d::vector<>和cocos2d::map<>。
4. 工程创建工具:cocos2d-x提供了命令行的方式创建新的工程,并且这个工具是跨平台的。
5. 渲染效率优化:cocos2d-x 3.0版本中,Sprite能自动处理批量,不再使用SpriteBatchNode来提高渲染效率。