스칼라 코드를 C++로 변환하려고합니다. 이것은 스칼라에 처음 노출 된 것이므로 특정 코드에 문제가 있습니다. 질문이 스칼라 코드를 이해하십시오
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()
방법을 다음과 같이
sealed abstract class FactorNode(factor: Factor) extends Node {
private var _factor: Factor = factor
def factorMarginal(): Factor
}
가 지금은 파생 클래스가 다음과 같이 그래서, 기본 클래스가 있습니다. 시체가없는 것 같아 아무것도 반환하지 않습니다. 이게 어떻게 작동합니까? 그것은 완전히 불필요한 것입니까?
2 : 두 번째로 파생 클래스의 factorMarginal()
메서드입니다. 저것은 기본 factorMarginal 방법을 타고 넘어서 이는가. 또한이 메서드의 마지막 줄은 자체 (괄호가 없음)라는 함수이며, 그 함수가 무엇을하는지 혼란 스럽습니다. 기본 클래스 factorMarginal 또는 일종의 재귀를 구현하고 있습니까?
Scala 코드를 C++로 변환하는 것은 좋지 않습니다. C++에서 알고리즘을 다시 구현할 수 없습니까? 이 알고리즘을 설명하는 연구 논문이있는 것처럼 보이는 표본이 제공됩니다. – ziggystar