2013-11-02 47 views
1

我需要知道下面的源代碼是指什麼:意義的代碼示例

scalar sumLocalContErr = runTime.deltaTValue()* 
mag(contErr)().weightedAverage(mesh.V()).value(); 

是什麼在這方面的*mag(contErr)()是什麼意思?我試圖谷歌它,但無法找到解釋。

問候 streight

+2

乘以兩個函數的返回值,也許? *之後的代碼應該在同一行上。那麼,該代碼將只會乘以它們的返回。 –

+1

看起來像一個乘法。但是我們不能確定不知道所有的類型!但你真的應該**使用調試器**! –

+1

除非標量是一些新的基本類型,否則由於運算符重載可能意味着任何事情。 –

回答

1
runTime.deltaTValue() * mag(contErr)().weightedAverage(mesh.V()).value(); 
~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     1          2 

Expr的1:是顯而易見的。 runTime.deltaTValue()調用一個方法並返回一個對象。返回的對象具有一個重載*操作者從表達式2

Expr的2接受對象:看來mag是與接受contErr一個構造函數的類。然後mag(contErr)是一個對象。該對象有一個超載的()運算符。所以,mag(contErr)()是一種調用方法。通過調用它,它將返回另一個對象,該對象的方法爲weightedAverage,該方法接受mesh.V()並返回一個具有方法value的對象。

+0

而'*'僅用於乘法? – Streight

+0

@Streight:也許吧。但通常是的,它應該是一個乘法。 – deepmax