简单的cocos2dx笔试题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单的cocos2dx笔试题相关的知识,希望对你有一定的参考价值。

1、参数传递有几种方式?
值传递、指针传递、引用传递

2、指针和引用有什么分别;如果传引用比传指针安全,为什么?如果我使用常量指针难道不行吗?

1、指针是一个变量,存储一个地址,指向内存的一个存储单元;
2、引用是变量的别名。引用不可以为空,指针可以为空;
3、引用不可以改变指向,指针可以改变指向;
4、引用的大小是指向的变量大小,指针是指针本身的大小,为4个字节。
5、由于不存在空引用,并且引用一旦被初始化为指向一个对象,它就不能被改变为另一个对象的引用。因此引用很安全。
对于指针来说,它可以随时指向别的对象,并且可以不被初始化,或者为null,所以不安全。常量指针虽然不能改变指
向,但仍存在空指针,并且有可能产生野指针(即多个指针指向一块内存,free掉一个指针后,别的指针就成了野指针)。

3、避免野指针的方法
1、初始化为null;
2、使用时加非空判断语句;
3、合理管理生命周期;

4、malloc和new的区别
1、malloc和free是c++语言的标准库函数,new和delete是c++的运算符。
2、malloc和new都可以用于申请动态内存,free和delete都可以释放内存。
3、new是保留字,不需要头文件支持,malloc需要头文件库函数支持。
4、new建立的是一个对象,malloc分配的是一块内存。


5、c++的特点是什么,如何实现多态?画出基类和子类在内存中的互相关系
c++的特点是封装、继承、多态。virtual声明父类成员函数,在子类重写该成员函数,在声明对象时,通过
父类指针调用该函数,可以调用子类的函数。

基类对象所占内存
}子类的对象所占内存
子类对象自身增加的部分


6、cocos2dx的屏幕适配解决方案。
ExactFit:通过拉伸来填满屏幕

NoBorder:无黑边,宽高等比缩放

ShowAll:全部现实,保证所有内容显示在屏幕上

FixedHeight:垂直拉伸填满屏幕

FixedWidth:水平拉伸填满屏幕

7、阐述cocos2dx中CCScene CCLayer CCSprite CCNode

CCNode是CCScene,CCLayer,CCSprite的基类,是一个抽象类,没有可视化的表现形式,
是为了方便构建渲染树而定义的一个类。CCScene是场景类,里面可以放CCLayer和CCSprite,
一个app里面可以放多个scene,但同一时刻只能有一个scene被激活,CCLayer是层类,里面可以
放CCSprite,CCSprite是最小的精灵单元。

 

8、cache机制原理是什么
把新加进内存的资源做一个hashmap存储,每一个资源加一个key,每次加载资源的时候,先通过
key查找资源是否存在,存在直接返回,否则加载进内存。

9、减少内存开销的方法有哪些?
减少泄漏,及时释放,重用资源,延迟加载

10、编写strcpy函数
char* strcpy(char*des,const char * source)
{
assert(des!=NULL&&source!=NULL)
char temp = des;
while(*des++=*source++);
return temp;
}

 

以上是关于简单的cocos2dx笔试题的主要内容,如果未能解决你的问题,请参考以下文章

数据挖掘2022年2023届秋招Kanaries雾角科技算法岗 笔试题

经典笔试题:简单实现一个死锁的例子

HUAWEI2016笔试题

[笔试题]sizeof系列面试题中的易错之处

一道简单的 Java 笔试题,但值得很多人反思

2017华为优招笔试题