gpt4 book ai didi

c++ - C++中的函数指针

转载 作者:太空狗 更新时间:2023-10-29 19:40:49 27 4
gpt4 key购买 nike

我正在尝试使用函数指针,但出现此错误:

无法从 void (__thiscall MyClass::*)(void) 转换为 void (__cdecl *)(void)

// Header file - MyClass.h
class MyClass
{
public:
MyClass();
void funcTest();
protected:
void (*x)();
};


// Source file
#include "stdafx.h"
#include "MyClass.h"

MyClass::MyClass()
{
x = funcTest;
}

void MyClass::funcTest()
{

}

(使用:Visual Studio 6)

有人能注意到我遗漏了什么吗?

最佳答案

非静态 成员函数的类型不是void (*)()。它是void (MyClass::*)(),这意味着你需要将x声明为:

void (MyClass::*x)();

x = &MyClass::funcTest; //use fully qualified name, must use & also

关于c++ - C++中的函数指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9836835/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com