CSE207 객체지향 강좌 및 C++ 관련, 누구나 묻고 답하는 게시판 입니다. CSE207 수강생이 아니여도 편안하게 질문하세요. 첨부화일은 이미지 화일 혹은 zip 화일로 업로드 하기를 권합니다. 제목연산자(=) 오버로딩의 역할2019-11-12 20:04작성자cppclass Point {private: int x; int y;public: Point() :x(0), y(0) {} Point(int _x, int _y) : x(_x), y(_y) {} void setXY(int _x, int _y) { this->x = _x; this->y = _y; } int getX() const { return this->x; } int getY() const { return this->y; } Point operator+(const Point pt) { //pt2 +pt3 -> pt2.+(pt3) Point result(this->x + pt.getX(), this->y + pt.getY()); return result; } Point& operator=(const Point& pt) { this->x = pt.getX(); this->y = pt.getY(); return (*this); }};void print_pt(const Point& pt) { cout << pt.getX() << ", " << pt.getY() << endl;}ostream& operator<<(ostream& cout, const Point& pt) { cout << pt.getX() << ", " << pt.getY(); return cout;}int main() { Point pt1(1, 2); // 2번 생성자 호출 print_pt(pt1); Point* pPt = &pt1; // pPt는 주소값을 저장하는 변수 ( 자체는 클래스 아님) cout << (*pPt).getX() << ", " << (*pPt).getY() << endl; cout << pPt->getX() << ", " << pPt->getY() << endl; cout << endl; Point* list = new Point[5]; // 포인트 객체가 총 5개 들어있음 for (int i = 0; i < 5; i++) cout << list[i].getX() << ", " << list[i].getY() << endl; cout << endl; delete[] list; Point pt2(10, 20); Point pt3(100, 200); pt1 = pt2 + pt3; cout << pt1 << endl; cout << pt2 << endl; cout << pt3 << endl; cout << endl; return 0;안녕하세요.연산자 오버로딩에 관한 질문이 있습니다.operator+가 객체끼리 덧셈을 가능해주게 하는 것처럼, operator=는 'pt1= pt2+pt3(밑에서 6번째 줄)'에서 값을 지정해주는 것을 가능하게 해준다고 이해했는데요.operator= 부분을 지워도 'pt1=pt2+pt3'가 작동돼서 제가 생각했던 게 아닐 수도 있다고 싶었습니다.여기서 operator= 가 어떤 역할을 하고 있는지가 궁금합니다. 목록수정삭제답변글쓰기 댓글 [1] 댓글작성자(*)비밀번호(*)내용(*) 댓글 등록 더보기이전lec11 강의노트 14~15p 관련 질문입니다.dg2019-11-12다음review 3 1번 질문입니다.dg2019-11-12 Powered by MangBoard | 워드프레스 쇼핑몰 망보드