<分区>
假设我有一个包含三个成员函数的类,如下所示:
#include <iostream>
#include <functional>
class ClassName
{
public:
double add(double a, double b);
double intermediate(double a, double b, std::function<double (double,double)> func);
double combiner(double a, double b);
};
double ClassName::add(double a, double b)
{
return a+b;
}
double ClassName::intermediate(double a, double b, std::function<double (double,double)> func)
{
return func(a, b);
}
double ClassName::combiner(double a, double b)
{
return intermediate(a, b, add);
}
int main()
{
ClassName OBJ;
std::cout << OBJ.combiner(12, 10);
}
我想做的是将成员函数“add”传递给成员函数“intermediate”,然后由“combiner”调用。但是,我不认为我使用了正确的语法,因为当我尝试编译它时,我收到一条错误消息“非标准语法;使用‘&’创建指向成员的指针。” 我不太确定出了什么问题,因为如果这些函数不是类中的成员函数(只是命名空间中定义的常规函数),则此方法可以完美运行。 那么是否可以将一个成员函数传递给另一个成员函数呢?