C++ 中的 Eval() 语法

Eval() syntax in C++

我必须制作一个 class 来保存数据,然后给它一个 eval() 方法。

但是,我无法让 eval() 工作。这是我的距离:

在h文件中:

class MyClass {
private:
double K;
double T;

public:
void eval();
};

在 cpp 文件中:

void MyClass::eval()
{
double MyFunction();
}

非常感谢任何建议。

你的意思好像是下面这样

class MyClass {
private:
double K;
double T;

public:
void eval( double f() );
};

void MyClass::eval( double f() )
{
    // ...
    double result = f();
    //...
}

或者

class MyClass {
private:
double K;
double T;

public:
void eval( double f( double, double ) );
};

void MyClass::eval( double f( double, double ) )
{
    // ...
    double result = f( K, T );
    //...
}

这是一个演示程序

#include <iostream>

class MyClass 
{
private:
    double K;
    double T;

public:
    MyClass( double K, double T ) : K( K ), T( T ) {}
    void eval( double f( double, double ) );
};

void MyClass::eval( double f( double, double ) )
{
    double result = f( K, T );

    std::cout << "result = " << result << '\n';
}

double sum( double x, double y )
{
    return x + y;
}

int main() 
{
    MyClass obj( 10.10, 20.20 );

    obj.eval( sum );

    return 0;
}

它的输出是

result = 30.3