2014-11-14 4 views
-1

저는 C++을 처음 사용하고 오버로드를 이해하고 산술 연산자에 과부하를 유발하려고합니다. 다음은 컴파일하지 않는 코드입니다.산술 연산자 오버로드 C++

ComplexNumber ComplexNumber::operator*(const ComplexNumber& rightOp) const 
{ 
double newValue = realNumberValue * rightOp.realNumberValue; 
return ComplexNumber(newValue); 
} 
+0

가능한 [Operator overloading] 중복 (http://stackoverflow.com/questions/4421706/operator-overloading) – CoryKramer

답변

2
return ComplexNumber(newValue); 

는 하나의 인수를 받아 ComplexNumber 객체의 생성자가 없습니다.

0
당신은

ComplexNumber::ComplexNumber(double val) 
{ 
double complexNumberValue = val; 
double realNumberValue = 0; 
} 

이 문제를 해결합니다 구현 파일이 추가 매개 변수로 하나 개의 값 (더블)을 가지고있는 생성자가없는

하지만 당신은 자신을 알아 내기 위해 무엇을 논리 부분에 대해 수행 할 작업

0

두 개의 인수 생성자 만 있지만 단일 인수 생성자를 호출하려고합니다.