zoukankan      html  css  js  c++  java
  • 简单的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;
    }

  • 相关阅读:
    C/C++ 获取线程入口地址模块等
    C/C++ IAT HOOK MessageBoxW
    C/C++ HOOK 全局 API
    c/c++创建静态库
    如何画Windows窗体
    WindowsPE TLS表
    WindowsPE 延迟加载导入表
    WindowsPE 资源表
    WindowsPE 重定位表
    WindowsPE 导出表
  • 原文地址:https://www.cnblogs.com/HemJohn/p/5173875.html
Copyright © 2011-2022 走看看