c++ - 函数指针问题

标签 c++ function-pointers type-mismatch

我有一个简单的代码

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/

相关文章:

spring - Spring Security,自定义登录表单: display custom message matching SPRING_SECURITY_LAST_EXCEPTION

c++ - 不能在函数中声明运算符。 Clang错误或规范?

assembly - 通过动态值调用子程序

Javascript函数指针 用于设置onclick函数

c++ - 一个类应该使用函数指针调用另一个类的方法

scala - 使用getOrElse连接两个映射时,类型不匹配编译器错误

java - 转换变量的问题

c++ - 在没有默认构造函数的情况下初始化类

c++ - 方法指针的问题

c++ - 使用命令行 LLDB 处理 Mac 上的全屏崩溃