gpt4 book ai didi

C++:对非静态成员函数指针的成员调用

转载 作者:行者123 更新时间:2023-11-30 02:05:16 32 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
C++ member-function pointer
How to invoke pointer to member function when it's a class data member?

我最近才开始使用 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() 中出现编译错误。请注意,这是一个大大简化的函数,不应该有任何意义。我已经在这个论坛和其他地方搜索过答案,但我仍然不确定是否可以定义/调用此类非静态成员函数指针。我遇到的唯一可能的提示/解决方案是使用静态包装函数来实现类似的功能。如果有任何帮助/说明,我将不胜感激。

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