标签:
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;
}
标签:
原文地址:http://www.cnblogs.com/HemJohn/p/5173875.html