C++/열혈 C++ 프로그래밍(윤성우 저)

열혈 C++ 프로그래밍 10-3 문제

꾸준함. 2017. 6. 8. 19:52

/*

예제 PointConsoleOutput.cpp에서 정의한 Point 클래스를 대상으로 아래의 main 함수가 보이는대로 데이터의 입력이 가능하도록,

그리고 실행의 예에서 보이는 대로 출력이 이뤄지도록 >>연산자를 오버로딩하자

int main(void)

{

        Point pos1;

        cout << "x, y 좌표 순으로 입력: ";

        cin >> pos1;

        cout << pos1;

 

        Point pos2;

        cout << "x, y 좌표 순으로 입력: ";

        cin >> pos2;

        cout << pos2;

        return 0;

}

*/

#include <iostream>

using namespace std;

 

class Point

{

private:

        int xpos;

        int ypos;

public:

        Point(int x = 0, int y = 0) :xpos(x), ypos(y)

        {

        }

        void ShowPosition() const

        {

               cout << '[' << xpos << ", " << ypos << ']' << endl;

        }

        friend ostream &operator<<(ostream&, const Point &);

        friend istream &operator>>(istream&, Point &);

};

 

ostream &operator<<(ostream &os, const Point &pos) //out

{

        os << '[' << pos.xpos << ", " << pos.ypos << ']' << endl;

        return os;

}

 

istream &operator>>(istream &is, Point &pos) //in

{

        is >> pos.xpos >> pos.ypos;

        return is;

}

 

int main(void)

{

        Point pos1;

        cout << "x, y 좌표 순으로 입력: ";

        cin >> pos1;

        cout << pos1;

 

        Point pos2;

        cout << "x, y 좌표 순으로 입력: ";

        cin >> pos2;

        cout << pos2;

        return 0;

}



개발 환경:Visual Studio 2017


지적, 조언, 질문 환영입니다! 댓글 남겨주세요~


[참고] 열혈 C++ 프로그래밍 윤성우 저

반응형