2015-10-15 92 views
0

我搬到了新的Uni。在我的旧程序中,我们非常关注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的目的是什么?

+0

看起来他们正试图教授有关范围解析运算符的内容。没有看到Der类的定义,它看起来像它可能有一个名为derivative的静态函数,它具有(至少)两个重载。一个接受Der对象(用Der()构造的)和一个接受函数指针(myfunction)的对象。猜测在上面的代码的文件范围内还有一个衍生函数,其中有两个原型。 –

回答

0

我不明白Der()是什么意思。

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

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

我们不能告诉是肯定的,因为你没有显示的实现,但derivative()看起来谁将会采取另一种函数作为参数并执行它,从而导致不同的操作功能。


我知道明镜()是类不知道为什么它被传递给DER ::衍生物(..),为什么如明镜(),而不是保存它的实例变量。

嘛,Der()是一个构造函数,你需要把它作为这一点,因为derivative()需要一个功能第一个参数。目的是什么?未知与我们现在知道的。

+0

我知道Der()是类不知道为什么它被传递给Der :: derivative(..)以及为什么作为Der()而不是一个变量来保存它的一个实例。 – Wilwiky

+0

检查编辑@Wilwiky。祝你好运! – gsamaras

相关问题