std::ostream& operator<<(std::ostream& os, const T& obj){
return os;
}

여기서 os는 객체의 이름을 쓰는게 아니라, parameter를 써야 하므로, cout을 쓰면 틀림

std::istream& operator>>(std::istream& is, T& obj){
return is;
}

멤버함수

Complex Complex::operator+(const Complex& c){
    Complex result(re + c.re, im + c.im);
    return result;
}
// 이게 맞음 (result를 리턴해야해)

틀린 예시 :

Complex Complex::operator+(const Complex& c){
    re += c.re;
    im += c.im;
    return *this; // 이렇게 하면 x 값이 바뀌게 되니까 안됨

const 선언 안했는데 왜 에러가 날까

Complex& Complex::operator=(const Complex& c){ // 이렇게 해야 에러가 안남
    re = c.re; im = c.im;
    return *this;


//실행문에서
Complex x(2,3);
Complex y(-1, -3);

z = x + y // 얘를 하게 되면 x + y 의 임시 변수가 const 선언을 하면서 나와서
// 에러가 나게 됨 .

'TIL > [C++ 프로그래밍} TIL' 카테고리의 다른 글

TIL (22.06.07) ( * , & 관련 )  (0) 2022.06.08
TIL (22.06.05)  (0) 2022.06.05
TIL (22.05.30)  (0) 2022.05.30
TIL (22.05.25)  (0) 2022.05.25
TIL (22.05.23)  (0) 2022.05.23