c++/ 객체 지향
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
/*
아래와 같은 main함수가 수행될 수 있는 Point클래스를 디자인해보자.
1. Point클래스 디자인
▶ 멤버 변수
x, y좌표
▶ 멤버 함수
SetPoint - 입력 데이터가 0~100사이 좌표라면 멤버변수에 설정하고,
좌표 범위를 벗어나면 -1을 저장
ShowPoint - 멤버변수의 저장된 좌표가 -1이 아니라면 출력하고,
-1이면 오류 메시지 출력
2. 클래스 멤버함수는 외부정의한다.
*/
// struct 에서 class 로 넘어가면서 접근 지정자를 설정할 수 잇게 된다.
// default private !!!!!
class Point
{
public:
//멤버변수
int x,y;
//멤버 함수
void SetPoint(int _x,int _y);
void ShowPoint();
};
void Point::SetPoint(int _x,int _y)
{
if(_x>=0 && x<=100 && _y>=0 && _y<=100 )
{
x=_x;
y=_y;
}
else
{
x=y=-1;
}
//0~100 사이 값이 아니라면 -1 셋팅
}
void Point::ShowPoint()
{
if(x==-1)
cout<<"잘못된좌표정보"<<endl;
else
{
cout << "\n\nx 좌표 : "<<x<<endl;
cout << "y 좌표 : "<<y<<endl;
}
}
int main()
{
int x, y;
cout << "x 좌표 : ";
cin >> x;
cout << "y 좌표 : ";
cin >> y;
Point p; //클래스 변수 선언
p.SetPoint(x, y); //포인터 설정함수 호출
p.ShowPoint(); //포인터 출력함수 호출
return 0;
}
-----------------------------------------------------------------------------
/* [ 실습과제 3]
// UML --> class 를 도식화
------------------------------------
class name
------------------------------------
--------\
attribute
--------\
-년 : int
-월 : int
-일 : int
--------\
method
--------\
+ setdate
+ getdate
------------------------------------
+ public
- private
--------------------------------------------------------------------
아래와 같은 main함수가 수행될 수 있는 Date클래스를 디자인해보자.
1. Date클래스 디자인
▶ private 멤버 변수
년, 월, 일
▶ public 멤버 함수
SetDate - 년, 월, 일 초기화
GetDate - 년, 월, 일 출력
2. 파일분할하여 프로그램을 작성한다.
*/
#include<iostream>
using std::cout;
using std::cin;
using std::endl;
class Date
{
private:
int year, month, day;
public:
void SetDate(int _y, int _m, int _d);
void GetDate();
};
void Date::SetDate(int _y, int _m, int _d)
{
year = _y;
month = _m;
day = _d;
}
void Date::GetDate()
{
cout <<year<<"년 "<<month<<"월 "<<day<<"일 "<<endl;
}
int main()
{
int year, month, day;
cout << "년 / 월 / 일 입력 (ex. 2004 3 4) : ";
cin >> year >> month >> day;
Date date; //Date 객체생성
date.SetDate(year, month, day); //날짜 설정함수 호출
date.GetDate(); //날짜 출력함수 호출
return 0;
}