我有一个简单的代码
class a{
public:
double (a::*fun)(const double &) const;
//
....
//
};
class b{
public:
a c1;
double f(const double & x) const{
return 0;
}
b(){
c1.fun = f;
}
};
这意味着类“a”必须与特定类型的函数一起工作,并且他的工作不依赖于该函数的实现(例如代数插值)。我想要类的参数 - 函数。 但我有一些问题。编译器写入
不能将“int (b::)(const int &x) const”类型的值分配给“int (a::)(const int &) const”类型的实体
它是如何正确的?
最佳答案
double (a::*fun)(const double &) const
声明一个指向类 a
的成员函数的指针,它返回 double 并接收 const double&
.
在您的示例中,您试图分配类 b
中定义的函数。这就是您收到错误的原因。
关于c++ - 函数指针问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22129073/