1. ostream& operator<<(ostream& os, const Point& p)
  2. {
  3. os<<"["<<p.x<<", "<<p.y<<"]"<<endl;
  4. return os;
  5. }



cout << 포인트객체; 를 가능하게 하는 연산자 오버로딩 코드인데, 길면 형들이 안보니까 질문에 별 필요없는 부분은 다 잘랐음.

질문은 3개인데


1. 왜 두번째 매개변수는 const로 하는지

2. 반환형에서 &붙이고 안붙이고 차이가 뭔지

3. 왜 반환이 필요한지 (안에서 cout<< 이런거 다 정의 되있는데 반환 하는 이유를 모르겠음)


c++ 고수형님들 지식한번 뽐내주세요