c++类中一个成员函数作为另一个成员函数的的参数
c++类中一个成员函数作为另一个成员函数的的参数,怎么写?这是是否就是回调函数?test.h
class a
{
public:
a();
~a();
void b();
void c();
};
test.cpp
a::a(){}
a::~a(){}
a::b(c){}
a::c(){}
报错是这样:
error: invalid use of non-static member function 不采用定义静态成员函数的方法 这样的函数必须是静态函数
static voidc (); xieglt 发表于 2020-11-26 20:06
这样的函数必须是静态函数
static voidc ();
静态函数无法调用其他非静态成员,无法多实例,是否还有其他办法? 给静态函数传一个类指针参数不就实现多实例了吗? 本帖最后由 xieglt 于 2020-11-27 08:59 编辑
闪亮的马路 发表于 2020-11-26 20:19
静态函数无法调用其他非静态成员,无法多实例,是否还有其他办法?
#include <iostream.h>
class test
{
public:
test();
~test();
public:
static void _stdcall a(void * t);
void b(void (_stdcall * Function)(void *));
private:
void c(void);
};
test::test()
{
}
test::~test()
{
}
void test::a(void * t)
{
test * p = reinterpret_cast<test *>(t);
p->c();
}
void test::b(void (_stdcall * Function)(void *))
{
Function(this);
}
void test::c()
{
cout << "This is a callback function!";
}
int main()
{
test t;
t.b(test::a);
return 0;
}
页:
[1]