Jes*_*son 2 c++ member-function-pointers
我之前从未使用过函数指针,而且在使代码工作时遇到了一些麻烦.这就是我所拥有的
TestClass.h:
class TestClass
{
public:
void function1();
void function2();
void function3(void (*funcPtr)(void))
void function4();
};
Run Code Online (Sandbox Code Playgroud)
TestClass.cpp
void TestClass::function1()
{
//CODE
}
void TestClass::function2()
{
//CODE
}
void TestClass::function3(void (*funcPtr)(void))
{
//CODE
funcPtr();
//CODE
}
void TestClass::function4()
{
function3(function1);
function3(function2);
}
Run Code Online (Sandbox Code Playgroud)
这给了我错误
"获取成员函数地址的非标准形式
我试图添加*funcPtr的TestClass :: infront,但这给了我更多的错误
使用成员函数指针,它应该是这样的:
void TestClass::function3(void (TestClass::*funcPtr)())
{
//CODE
(this->*funcPtr)();
//CODE
}
void TestClass::function4();
{
function3(&TestClass::function1);
function3(&TestClass::function2);
}
Run Code Online (Sandbox Code Playgroud)
带功能指针
class TestClass
{
public:
static void function1(); // static added
static void function2(); // static added
void function3(void (*funcPtr)(void))
void function4();
};
void TestClass::function3(void (*funcPtr)())
{
//CODE
funcPtr();
//CODE
}
void TestClass::function4();
{
function3(&TestClass::function1);
function3(&TestClass::function2);
}
Run Code Online (Sandbox Code Playgroud)