[C++] 씹어먹는 C++ - <4 - 1. 객체 지향 프로그램>

Kim Dongil·2022년 11월 26일
0

C++

목록 보기
1/23

인스턴스 메소드 (객체에 정의되어 있는 함수)
인스턴스 변수 (인스턴스 메소드 내부에 있는 변수)

클래스 (객체를 만들 수있는 장치)(설계도)
-클래스를 이용해서 만든 객체를 인스턴스 라고 부른다.

멤버 변수, 멤버함수
-클래스 상에서 인스턴스 메소드, 인스턴스 변수를 지칭할때 부르는 말

private: (클래스 에 있는 키워드)
-아래에 쓰여진 것들은 모두 객체 내에서 보호함.

public: (클래스 에 있는 키워드)
-외부 내부 마음껏 이용 가능

키워드를 명시하지 않았다면 기본적으로 private 로 설정

1. 여러분은 아래와 같은 Date 클래스를 디자인 하려고 합니다. SetDate 는 말그대로 Date 함수 내부를 초기화 하는 것이고 AddDay, AddMonth, AddYear 는 일, 월, 년을 원하는 만큼 더하게 됩니다. 한 가지 주의할 점은 만일 2012 년 2 월 28 일에 3 일을 더하면 2012 년 2 월 31 일이 되는 것이 아니라 2012 년 3 월 2 일이 되겠지요?

(난이도 : 上)

#include <iostream>

class Date {
	int year_;
	int month_;  // 1 부터 12 까지.
	int date_;    // 1 부터 31 까지.

public:
	void SetDate(int year, int month, int date) {
		year_ = year;
		month_ = month;
		date_ = date;
	}
	void AddDay(int inc) {
		date_ += inc;
		if (month_ == 2 && date_ > 28) {
			AddMonth(1);
			date_ -= 28;
			AddDay(0);
		}
		if (month_ == 4 || month_ == 6 || month_ == 9 || month_ == 11 && date_ > 30) {
			AddMonth(1);
			date_ -= 30;
			AddDay(0);
		}
		if (month_ == 1 || month_ == 3 || month_ == 5 || month_ == 7 || month_ == 8 || month_ == 10 || month_ == 12 && date_ > 31) {
			AddMonth(1);
			date_ -= 31;
			AddDay(0);
		}
	}
	void AddMonth(int inc) {
		month_ += inc;
		if (month_ > 12) {
			AddYear(1);
			month_ -= 12;
			AddMonth(0);
		}
	}
	void AddYear(int inc) {
		year_ += inc;
	}
	void ShowDate() {
		std::cout << year_ << month_ << date_ << std::endl;
	}
};

int main() {
	Date date;
	int year, month, day;

	std::cout << "year, month, date 값 입력 : " << std::endl;
	std::cin >> year >> month >> day;

	date.SetDate(year, month, day);
	date.ShowDate();

	while (1) {
		int input1, input2;
		std::cout << "1. day 추가 \n" << "2. month 추가 \n" << "3. year 추가 \n";
		std::cin >> input1;
		std::cout << "얼마나 추가하시겠습니까? \n";
		std::cin >> input2;

		switch (input1) {
		case 1:
			date.AddDay(input2);
			break;
		case 2:
			date.AddMonth(input2);
			break;
		case 3:
			date.AddYear(input2);
			break;
		}

		date.ShowDate();
	}
	return 0;
}

씹어먹는 C++ - <4 - 1. 이 세상은 객체로 이루어져 있다>

0개의 댓글

관련 채용 정보