gpt4 book ai didi

c++ - 指向类成员函数的指针作为外部函数的参数

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:21:16 26 4
gpt4 key购买 nike

我正在尝试为 OpenGL 库实现一些类方法,但我在函数指针方面遇到了麻烦。不管怎样,假设我们有 C++ 代码:

int funct1(int x){
return x*x;
}
class foo{
public:
int funct2(int x){
return x*x;
}
};
int conv(int (*f)(int)){
return f(1);
}
int main(){
conv(funct1);
foo bar;
conv(funct2);
}

我确实意识到 funct2 是 foo 类的内部方法,但是尝试将 conv(funct2) 更改为 conv(bar.funct2) 之类的东西会出现如下错误:

argument of type ‘int (foo::)(int)’ does not match ‘int (*)(int)’

我曾试图在其他类似的帖子中寻求帮助 - 但总是非常复杂。有人可以在这里发布更改后的工作代码吗?

最佳答案

将 funct2 声明为静态

int funct1(int x){
return x*x;
}
class foo{
public:
static int funct2(int x){
return x*x;
}
};
int conv(int (*f)(int)){
return f(1);
}
int main(){
conv(funct1);
foo bar;
conv(foo::funct2);
}

关于c++ - 指向类成员函数的指针作为外部函数的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25934626/

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