多态性和回调,这里发生了什么?

时间:2015-10-15 22:11:01

标签: c++

我搬到了新的大学。在我的旧程序中,我们非常关注Java,但是在新的Uni中我们非常关注C ++并且没有介绍性课程。我正在阅读C ++教程以熟悉,但我想完成这项任务。

基本上我们需要编写一个计算数值导数的程序,这不是问题我只是不完全理解给定的代码:

我们需要使用两个概念:多态和回调

代码:

double myfunction(const double x){
...
}

class Der{
...
};

int main(){
    double x, h;

    Der::derivative(Der(),x,h)
    Der::derivative(myfunction,x,h)

    derivative(Der(),x,h)
    derivative(myfunction,x,h)

    return 0;
}

好的,所以前两个调用我不明白什么Der()意味着我们在这里传递的内容看起来不像一个对象的实例。我熟悉将函数作为参数传递,但不完全确定为什么要传递的对象或函数不应该方法derivativex, h参数计算它。

在后两行中,我不确定这是什么意思?如果我需要另一个derivative函数而不是myFunction的目的?

1 个答案:

答案 0 :(得分:0)

  

我不明白Der()的含义。

Der这是班级的名称。您正在致电derivative()Der。您需要这样做,因为没有创建类Der的实例(提示:这意味着derivative()是一个静态函数(阅读更多here)!!)。

  

如果我需要另一个衍生函数而不是myFunction的目的?

我们无法确定,因为您没有显示任何实现,但derivative()似乎是一个函数,它将另一个函数作为参数并执行它,从而导致不同的操作。

  

我知道Der()是不确定为什么它被传递给Der :: derivative(..)以及为什么作为Der()而不是一个包含它的实例的变量。

嗯,Der()是一个构造函数,你需要传递它,因为derivative()将函数作为第一个参数。目的是什么?我们现在所知道的未知。