c++ - 如何在另一个类的静态成员函数中传递非静态成员函数的函数指针
问题描述
class A{
static void callback(void(*fun)());
};
class B{
void f1();
}
int main{
B b;
A::callback(b.f1);
return 0'
}
如果 f1 是非静态成员函数,我将在编译时遇到以下错误
no known conversion for argument 1 from â <unresolved overloaded function type> â to â void (*)
如何在不将 f1 设为静态的情况下解决问题
请帮我
解决方案
静态方法
一个类的所有非模板成员函数都有一个地址,不管它们是通过哪个类的实例来访问的。
静态类函数的特殊之处在于它们不传递this
指针,因此可以在没有类实例的情况下调用它们,而是通过类名本身(即class::fn
)调用它们。
推荐阅读
- r - How to prevent db connection code chunks from evaluating in Rmd?
- hibernate - JPA 2 Criteria Query Inheritance
- jquery - ajax post request failing after third times on iOS
- javascript - Parent click handler is always executing first
- node.js - Why wikijs didn't assign user with google self registration?
- excel - VBA - Modification of SourceData (Dynamic Range) of existing STock OHLC Chart
- model - Calculate the exact GPU memory taken by the model in keras or tensorflow
- node.js - WebSocket Client Side Keeps reconnecting , without invoking on() events
- php - Elasticsearch - Research that returns too many bad results
- rest - 如何使用 Rest Assured 进行性能测试