먼저 내가 점점 오전 오류입니다 :는 오버로드 할 수 없습니다 << 모든이의 운영자
error: overloaded 'operator<<' must be a binary operator (has 3 parameters) std::ostream& operator<< (std::ostream& os, const Dcomplex& c);
와 난 그냥 이유를 이해하지 않습니다. 나는 몇 가지 다른 질문을 읽고 그것들은 단지 const를 추가한다고 말했지만 그것은 나를 위해 일하지 않는다. 나는 그것이 작동하지 않는 이유는 어떤 생각에 감사드립니다
#ifndef AUFGABE5_DCOMPLEX_H
#define AUFGABE5_DCOMPLEX_H
class Dcomplex {
private:
double re, im;
public:
Dcomplex(double r = 0, double i = 0);
Dcomplex(const Dcomplex& kopie);
~Dcomplex();
double abswert() const;
double winkel() const;
Dcomplex konjugiert() const;
Dcomplex kehrwert() const;
Dcomplex operator+(const Dcomplex& x)const;
Dcomplex operator-();
Dcomplex operator*(const Dcomplex& x)const;
Dcomplex operator-(const Dcomplex& x)const;
Dcomplex operator/(const Dcomplex& x)const;
Dcomplex& operator++();
Dcomplex& operator--();
const Dcomplex operator++(int);
const Dcomplex operator--(int);
std::ostream& operator<< (std::ostream& os, const Dcomplex& c);
std::istream& operator>> (std::istream& is, const Dcomplex& c);
bool operator>(const Dcomplex &x)const;
void print();
};
#endif //AUFGABE5_DCOMPLEX_H
:
그래서이 내 헤더 파일입니다.
편집 :
std::istream& Dcomplex::operator>>(std::istream &is, const Dcomplex& c) {
double re,im;
std::cout << "Der Realteil betraegt?"; is >> re;
std::cout << "Der Imaginaerteil betraegt?"; is >> im;
Dcomplex(re,im);
return is;
}
연산자 '<<'및 '>>'연산자는 비 멤버 함수이어야한다. – songyuanyao