2012-03-21 4 views
0

저는 과제를 수행 중이며 특정 영역의 벽에 부딪혔습니다. 헤더에서 .cpp 파일로 비 멤버 함수를 구현하는 방법을 알아낼 수 없습니다. 여기 헤더입니다 :비 멤버 함수 구현

class complx 
{ 
    double real, imag; 
public: 
    complx(double real = 0., double imag = 0.); // constructor 
    complx operator+(complx);  // operator+() 

    complx operator+(double);  // operator+()with double 
    complx operator- (complx);  // operator-() 
    complx operator* (complx);  // operator*() 

    bool operator== (complx); // operator==() 


    //Sets private data members. 
    void Set(double new_real, double new_imaginary) { 
     real = new_real; 
     imag = new_imaginary; 
    } 

    //Returns the real part of the complex number. 
    double Real() { 
     return real; 
    } 

    //Returns the imaginary part of the complex number. 
    double Imaginary() { 
     return imag; 
    } 
}; 

ostream &operator << (ostream &out_file, complx number); 

extern istream &operator >> (istream &in_file, complx &number); 

extern ifstream &operator >> (ifstream &in_file, complx &number); 

complx &operator + (double, complx); 
complx &operator - (double, complx); 
complx &operator * (double, complx); 
} 

내가 알아 낸 멤버의 대부분의 기능을 가지고 있지만, 그것은 나에게 맞는주는 헤더의 맨 아래에있는 세 가지입니다. 어떤 도움이라도 대단히 감사하겠습니다. 감사!

p.s. 서식을 미안합니다. 복사가 잘되지 않습니다. 당신의 .ccp 파일에서

+0

한 가지 들어, 서명이 잘못되었습니다. 참조를 반환 할 임시 객체가 아닙니다. 값으로 대신 반환하십시오. –

+3

탭을 찾아서 4 개의 공백으로 바꾸고 "코드 형식"버튼 ('{}) 아이콘을 붙여넣고 선택하고 누르십시오. –

+0

솔직히 헤더 맨 아래에 6 개의 연산자 중 하나를 구현할 수 있다고 생각하지 않습니다. 예, 클래스에 연산자를 오버로드 할 수 있습니다. 아니요, 클래스없이 연산자를 오버로드 할 수 있다고 생각하지 않습니다 ... 실제로 수행하려고 시도한 것이면 ... – paulsm4

답변

0

간다 :

ostream &operator << (ostream &out_file, complx number) 
{ 
    out_file << number.Real() << "," << number.Imaginary(); 
    return out_file; 
} 

를 마찬가지로 다른 사람을 위해.

트릭 (실수 부 및 허수 부)의 요소에 복소수를 분해하고 그 위에 필요한 작업을 수행 (그리고 +, -, *의 리턴 값에 대한 새 복잡한 객체를 생성)하는 것이다.

+0

도움을 주셔서 감사합니다. 이제 스트림 및 연산자 부분을 얻었습니다. 연산자의 반환 값에 대한 새로운 복합 객체를 만들면 어떤 의미인지 아직 확실하지 않습니다. –

+0

'operator +'의 반환 유형은'complx'이므로 연산자에서 반환하는 복잡한 객체를 만들어야합니다. 이 반환 된 객체는 double 및 입력 매개 변수의 실수 값과 입력 매개 변수의 동일한 상상 값의 합계를 갖습니다. (이것은 이중이 실수 부분에 추가되거나 상상 부분에 추가되지 않아야 함을 가정합니다.) 다른 연산자에 대해서도 마찬가지입니다. – Attila

+0

알았어. 알아 냈어. 모든 도움을 주셔서 다시 한 번 감사드립니다. –

관련 문제