2015-10-15 48 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

相關問題