C++:对非静态成员函数指针的成员调用
C++: member call to non-static member function pointer
可能重复:
C++成员函数指针
当指针指向成员函数';是类数据成员吗?
我最近才开始使用C++,所以如果下面包含任何琐碎的错误,或者我错过了一个更简单的解决方案,我深表歉意。我想实现这样的目标:
class ClassA {
typedef double (ClassA::*CondFunc)();
public:
ClassA(int x, int y) {
value_ = x;
switch (y) {
case 0:
condFunc_ = &ClassA::condA;
break;
case 1:
condFunc_ = &ClassA::condB;
default:
break;
}
}
~ClassA();
int value_;
CondFunc condFunc_;
double condA() { return 2.0*value_; }
double condB() { return 4.0*value_; }
void Test() {
int a = condFunc_(); // compile error
}
};
但在Test()中出现编译错误。请注意,这是一个大大简化的函数,不应该有任何意义。我已经在这个论坛和其他地方搜索了答案,但仍然不确定是否可以定义/调用这样的非静态成员函数指针。我遇到的唯一合理的提示/解决方案使用了一个静态包装器函数来实现类似的功能。如有任何帮助/澄清,我将不胜感激。
您必须像这样调用成员指针函数:
int a = (this->*condFunc_)();
相关文章:
- 如果基类包含双指针成员,则派生类的构造函数
- C++正确的指针成员初始化
- 是否可以使用智能指针成员设置具有另一个结构的结构?
- 为什么 operator() 处的指针成员不起作用?
- 更改队列指针成员的值需要在 C++ 中出现奇怪的错误
- 如何从另一个嵌套类中调用某个封闭类的嵌套类的函数指针成员的值?
- 结构对象的指针成员在传递给函数时被修改
- 参数的混合值,当我调用指针成员函数时
- 如何正确使用结构的共享指针成员?
- C++:私有类指针成员返回未定义的值
- 在函数中传递带有指针成员的结构是浅拷贝或深拷贝在 C 中
- 包含指针成员的嵌套结构
- 在 c++ 中,为什么 -> 被称为二进制中缀指针成员访问运算符?
- C++ 类指针成员行为奇怪(错误)
- 常量结构的指针成员
- 在类C++指针成员中
- 指针成员未在复制构造函数中初始化
- C++移动拥有指针成员的构造函数
- C++ 包含唯一指针成员变量的类的赋值运算符
- 如何使用 QPoint 指针成员对类进行排队和取消排队