42Seoul/CPP Module 05 4

ex03

forms을 작성하는 거는 귀찮아서 interns이 존재한다고 한다. 인턴에게는 이름도 없고, 등급도 없고, 독특한 특성도 없습니다. 관료들이 관심을 갖는 유일한 것은 그들이 일을 하는 것입니다. → 멤버 변수가 없다라는 것임. 그렇지만 중요한 makeForm 함수가 존재. AForm *makeForm(const std::string &form, const std::string &target); 이 함수 안에는 if/elseif/else 금지 → 함수 포인터 사용. "Bender"를 대상으로 하는 RobotomyRequestForm을 생성. intern hpp #ifndef INTERN_HPP # define INTERN_HPP #include "AForm.hpp" #include "Presidentia..

ex02

이제 form에 어떠한 양식을 더 만들 거임 3가지로 나뉨 ShrubberyCreationForm: 필수 성적: 서명 145, 실행 137 작업 디렉터리에 _shrubbery 파일을 만들고 그 안에 ASCII 트리를 씁니다. RobotomyRequestForm: 필수 성적: 서명 72, 실행 45 드릴링 소음이 발생합니다. 그런 다음 이 50%의 확률로 로봇화되었음을 알려줍니다. 그렇지 않으면 로봇공학이 실패했음을 알립니다. PresidentialPardonForm: 필수 등급: sign 25, exec 5 이 Zaphod Beeblebrox에 의해 사면되었음을 알립니다. ShrubberyCreationForm hpp #ifndef SHRUBBERYCRETIONFORM_HPP # define SHRUBB..

ex01

Form Class 만들기 상수 이름. == const std::string name; 서명되었는지 여부를 나타내는 부울입니다(구성 시에는 서명되지 않음). == bool sign; 서명하려면 일정한 등급이 필요합니다. == const int signGrade; 이를 실행하기 위해서는 일정한 등급이 필요합니다. == const int execGrade; 양식의 등급은 관료에게 적용되는 것과 동일한 규칙을 따릅니다. 따라서 양식 등급이 범위를 벗어나면 Form::GradeTooHighException 및 Form::GradeTooLowException과 같은 예외가 발생합니다. class GradeTooLowException : public std::exception { public: const char ..

ex00

들어가기 전 try catch, throw과 exception,what을 공부하고 가자! try catch, throw https://wo-dbs.tistory.com/158 Try Catch, throw → 우리에게 익숙한 예외처리는 if문을 이용한 예외처리임. 하지만 if문을 보고 예외처리를 위한 코드인지 프로그램의 흐름을 구성하는 코드인지 쉽게 구분하지 못해서 가독성이 떨어짐. C++의 wo-dbs.tistory.com exception,what https://wo-dbs.tistory.com/159 exception, what → if-else문을 통해 예외를 인지하게 한 후 직접 throw를 던졌었지만 문제가 생기면 std::exception 클래스를 통해 시스템 상 내부에서 알아서 발생한 예외..