c++call back

简介:
#include "stdafx.h"
struct A;

typedef void(A::*MemFuncPtr) (int* e);

class A
{
    int a;
}; 

class View : public A
{
public:
    virtual void test() { printf("test A\n"); }
};

class Window : public View
{
public:
    virtual void test() { printf("test A\n"); }
    void func(int * b) { (void)b; printf("************\n"); }
};


typedef void(*HandlerNoParam)();
typedef void(*Handler1Param)(void* receiver);
typedef void(*Handler2Param)(void* receiver, int* e);

void test1()
{
    printf("no parameter test:\n");
}

void test2(void* receiver)
{
    (void)receiver;
    printf("1 parameter test:\n");
}

void test3(void* receiver, int* e)
{
    (void)receiver;
    (void)e;
    printf("2 parameter test:\n");
}



int _tmain(int argc, _TCHAR* argv[])
{
    Handler2Param p0 = (Handler2Param)test2;
    p0(NULL, 0);

    MemFuncPtr p = (MemFuncPtr)&Window::func;
    Window a;
    (a.*p)(NULL);
    getchar();
    return 0;
}
复制代码

 本文转自莫水千流博客园博客,原文链接:http://www.cnblogs.com/zhoug2020/p/6871607.html,如需转载请自行联系原作者

相关文章
成功解决“Run-Time Check Failure #2 - Stack around the variable ‘arr‘ was corrupted.“问题
成功解决“Run-Time Check Failure #2 - Stack around the variable ‘arr‘ was corrupted.“问题
450 1
push_back还是emplace_back?
emplace_back() 是 C++11 之后,vector容器中添加的新方法,和 push_back()一样,都是在容器末尾添加一个新的元素,相对于push_back函数,它减少了一次类的构造。不同的是emplace_back() 在效率上相比较于 push_back() 有了一定的提升。
103 0
深入理解 V8 的 Call Stack
Call Stack(调用栈) 一般指计算机程序执行时子程序之间消息处理的相互调用产生的一些列函数序列,而且几乎所有的计算机程序都依赖于调用栈。
3652 0
Dart之break、continue/ switch...case
Dart之break、continue/ switch...case
123 0
Dart之break、continue/ switch...case
CALL
CALL
117 0
call, call.call, call.call.call, 你也许还不懂这疯狂的call
Function.prototype.call 我想大家都觉得自己很熟悉了,手写也没问题!! 你确认这个问题之前, 首先看看 三千文字,也没写好 Function.prototype.call,
196 0
call, call.call, call.call.call, 你也许还不懂这疯狂的call
C++中push_back和emplace_back的区别
在 `C++11` 之后,`vector` 容器中添加了新的方法:`emplace_back()` ,和 `push_back()` 一样的是都是在容器末尾添加一个新的元素进去,不同的是 `emplace_back()` 在效率上相比较于 `push_back()` 有了一定的提升。
925 0
C++中push_back和emplace_back的区别
C++11使用emplace_back代替push_back
最近在写一段代码的时候,突然很好奇C++11中对push_back有没有什么改进以增加效率,上网搜了一些资料,发现果然新增了emplace_back方法,比push_back的效率要高很多。 首先,写了一个类用于计时, //time_interval.
2313 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等