cocos2d-x的成员函数指针
2012-11-20 17:40
399 查看
#include "iostream" using namespace std; class CCObject { }; class base:public CCObject { private: int value; public: base() { value = 314; } public: void f() { std::cout<<value<<std::endl; } }; typedef void (CCObject::*SEL_SCHEDULE)();//typedef隐藏数据类型,SEL_SCHEDULE表示成员函数指针的类型 #define schedule_selector(_SELECTOR) (SEL_SCHEDULE)(&_SELECTOR) int main() { base* mybase = new base(); //SEL_SCHEDULE abc = schedule_selector(base::f); SEL_SCHEDULE abc = (SEL_SCHEDULE)(&base::f);// (SEL_SCHEDULE)是强制转换,因为base和CCObject是不同的类(这行跟上面一行是一样的) // void CCObject::*ptrFun abc = (void CCObject::*ptrFun())(&base::f); CCObject* obj = new CCObject; (obj->*abc)();//这里不能输出正常的value值,因为不是用base的实例去调用 (mybase->*abc)();//这里要求mybase继承CCObject,否则编译错误 void (CCObject::*ptrMemeberFunc)(); //ptrMemeberFunc = (&base)::f; return 0; }
输出:
-33686067
314
相关文章推荐
- cocos2d-x中函数回调 事件监听机制详细解析 涉及c++成员函数指针
- 指向类成员函数的指针
- 成员函数指针的应用
- 在模板类成员函数入参中使用回调函数指针
- 成员函数指针数组的应用
- 成员函数指针以及C++委托
- C++点滴——const/volatile不能用来修饰没有this指针的成员函数
- 成员函数指针与高性能的C 委托
- 为什么通过空指针(NULL)可以正确调用一些类的成员函数?
- 恼人的函数指针:指向类成员的指针
- 一般函数指针和类的成员函数指针
- 成员函数指针与高性能的C++委托(上篇)
- const限定修饰符用法总结(常量,指针,迭代器,函数参数,成员函数)
- 成员函数指针与高性能的C++委托(中篇)
- 成员函数指针与高性能的C++委托(上篇)
- 成员函数指针与高性能的C++委托(中篇)
- c++ 如何把this指针传入成员函数 像全局函数一样调用成员函数
- 类成员函数指针回调问题。(可以回调但是,函数回调后this指针无效)
- 一般函数指针和类的成员函数指针
- 深入类的成员函数指针