zoukankan      html  css  js  c++  java
  • C++的坑(一)

    回调函数的坑

    在cocos2dx中,callfuncO_selector等宏可以把成员函数的地址存储起来,在合适的时候通过函数指针调用成员函数。

    但自己在使用时,在成员函数中启用了C++的隐含的this指针,也就时在成员函数里访问了成员变量。

    这种情况就会导致,如果在调用函数时,不是通过类的对象指针调用成员函数,就会发生this指针被改变,同时成员变量会为null的情形。

    C++的编译器在编译时,不会认为这种是错误。

    C++的正确的函数指针的调用方法——

    (m_target->*m_action)(m_callbackParamater);  m_target是成员函数指针m_action的类对象实例的地址,m_callbackParamater为参数。

    从上面也引出另一个问题,静态函数中不存在this指针,所以可以直接类似C一样把其地址存起来,在合适的时候直接调用。

    另转几份c++ this指针的资料

    http://developer.51cto.com/art/201104/254741.htm

    http://www.cnblogs.com/winston/archive/2008/06/03/1212700.html(里面提到了 return *this)

  • 相关阅读:
    文件路径选择中的三态逻辑
    .net版本号
    使用MSBuild编译vs多个解决方案
    CEF截图
    使用SharpZIpLib写的压缩解压操作类
    软件试用期设置
    list转datatable
    excel 导入
    网站登录简单验证码
    UEditor编辑器
  • 原文地址:https://www.cnblogs.com/live-in-city/p/3503120.html
Copyright © 2011-2022 走看看