一个类方法通过函数指针调用另一个类方法
One class method call another one via function pointer
出于某种原因,我必须通过函数指针从同一类的另一个方法调用类方法。这是说明我的问题的示例代码:
class testClass
{
....
private:
void method(int parameter) {
.....
};
void callingMethod();
};
typedef void (testClass::*classMethod)(int parameter);
void testClass::callingMethod() {
classMethod method = &testClass::method;
method(1);
}
我收到编译错误
错误 C2064:术语的计算结果不是采用 1 个参数的函数。
执行此类调用的正确方法是什么?
你的语法是正确的,除了
method(1);
你应该使用
(this->*method)(1);
或
(*this.*method)(1);
检查这个:
class testClass
{
public:
int method(int parameter)
{
cout << "Hi";
return 0;
};
void callingMethod();
};
int (testClass::*pt2Member)(int) = NULL;
void testClass::callingMethod()
{
pt2Member = &testClass::method;
(*this.*pt2Member)(12);
//classMethod method = &testClass::method;
//*method(1);
}
int main()
{
testClass objTest;
objTest.callingMethod();
return 0;
}
它应该很简单
(this->*method)(10);
相关文章:
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗
- 如何制作一个将函数作为参数的类方法
- 函数从唯一代码调用正确的子类方法
- c++类:编写函数的不同方法
- 在何处放置与类方法相关的帮助程序函数C++
- 如何将CLI类的函数指针作为参数传递给C++方法
- 指向类中函数方法的指针不起作用
- 如何调用其对象位于函数内的类方法
- C++ - 类方法函数指针unordered_map的初始化器列表
- 在结构的构造函数中使用类方法赋值变量
- 类方法和全局函数中的别名
- 如何从具有多个对象/字段的类中调用方法函数
- 如何从类构造函数传递值C++作为此类方法的默认参数?
- 对静态重载(类)函数/方法的调用是不明确的
- 如何为其他类成员函数编写模板包装方法
- C++;类方法指针;λ;将 lambda 作为成员函数指针传递;
- 从类方法调用命名空间中名为 Same 的函数时,重载解析失败
- 是否有一种方法可以始终通过值(制作副本)而不是在使用类成员函数时通过参考来传递
- 递归std ::函数定义模板类方法
- 类方法/函数中的指针