我想將一些Scala代碼轉換爲C++,這是我第一次有任何暴露給Scala,我遇到了一些代碼的麻煩。所以,我有一個基類如下:瞭解這個Scala代碼
sealed abstract class FactorNode(factor: Factor) extends Node {
private var _factor: Factor = factor
def factorMarginal(): Factor
}
現在我有一個派生類如下:
case class SingleFactorNode(factor: SingleFactor, gate: FactorGate) extends FactorNode(factor) {
def factorMarginal(): Factor = {
val inMsg = gate.getEndGate().getMessage()
val factorMarginal = factor * inMsg
factorMarginal
}
}
幾個問題:1:在基類中的方法factorMarginal()
。它似乎沒有身體,也沒有任何回報。這個怎麼用?它的方式完全是多餘的嗎?
2:第二個派生類中的factorMarginal()
方法。那是否超過了基數因子方法。另外,這個方法的最後一行自稱(沒有任何括號),我很困惑這是什麼。它被稱爲基類因子Margin或實現某種遞歸?
把Scala代碼翻譯成C++可能是個不錯的主意。你不能只用C++重新實現算法嗎?你提供的樣本看起來應該存在一篇描述這種算法的研究論文。 – ziggystar