首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误:无法在赋值中将'double (evaluator::*)(double,double)‘转换为'double (*)(double,double)’

错误:无法在赋值中将'double (evaluator::*)(double,double)‘转换为'double (*)(double,double)’
EN

Stack Overflow用户
提问于 2013-07-14 23:41:23
回答 2查看 581关注 0票数 1

我得到了这个错误,当我使用指向函数的指针时,我得到了这个错误。我的函数'ope‘函数如何解决

代码语言:javascript
复制
    evaluator::function(){
    double (*ope) (double,double) ;
    ope=&evaluator::add;
}

double evaluator::add( double a, double b){
    return (a+b);
    }
EN

回答 2

Stack Overflow用户

发布于 2013-07-15 00:01:21

这一点:

代码语言:javascript
复制
double (*ope)(double, double);

应该是:

代码语言:javascript
复制
double (evaluator::*ope)(double, double);
//      ^^^^^^^^^^^^

因为您使用的是指向成员的指针。

票数 1
EN

Stack Overflow用户

发布于 2013-07-15 00:08:37

使用以下声明:

代码语言:javascript
复制
double (A::*func)(double, double)

并像这样进行调用:

代码语言:javascript
复制
return ((*this).*func)(5, 4);

希望这能帮上忙。

代码语言:javascript
复制
class A {
public:
    double foo();
    double foo2(double, double);
};

double A::foo() {
    double (A::*func)(double, double);
    func = &A::foo2;
    return ((*this).*func)(5, 4);
}

double A::foo2(double a, double b) {
    return a + b;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17640886

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档