forms을 작성하는 거는 귀찮아서 interns이 존재한다고 한다.인턴에게는 이름도 없고, 등급도 없고, 독특한 특성도 없습니다. 관료들이 관심을 갖는 유일한 것은 그들이 일을 하는 것입니다. → 멤버 변수가 없다라는 것임.그렇지만 중요한 makeForm 함수가 존재.AForm *makeForm(const std::string &form, const std::string &target);이 함수 안에는 if/elseif/else 금지 → 함수 포인터 사용."Bender"를 대상으로 하는 RobotomyRequestForm을 생성. internhpp#ifndef INTERN_HPP# define INTERN_HPP#include "AForm.hpp"#include "PresidentialPardonFor..
이제 form에 어떠한 양식을 더 만들 거임3가지로 나뉨ShrubberyCreationForm: 필수 성적: 서명 145, 실행 137작업 디렉터리에 _shrubbery 파일을 만들고 그 안에 ASCII 트리를 씁니다.RobotomyRequestForm: 필수 성적: 서명 72, 실행 45드릴링 소음이 발생합니다. 그런 다음 이 50%의 확률로 로봇화되었음을 알려줍니다. 그렇지 않으면 로봇공학이 실패했음을 알립니다.PresidentialPardonForm: 필수 등급: sign 25, exec 5이 Zaphod Beeblebrox에 의해 사면되었음을 알립니다. ShrubberyCreationFormhpp#ifndef SHRUBBERYCRETIONFORM_HPP# define SHRUBBERYCRETION..
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 *wh..
들어가기 전 try catch, throw과 exception,what을 공부하고 가자!try catch, throwhttps://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 클래스를 통해 시스템 상 내부에서 알아서 발생한 예외를 thr..
→ if-else문을 통해 예외를 인지하게 한 후 직접 throw를 던졌었지만 문제가 생기면 std::exception 클래스를 통해 시스템 상 내부에서 알아서 발생한 예외를 throw 한다.예외(exception)은 프로그램 실행 중에 예기치 않은 상황이나 오류가 발생했을 때 발생하는 이벤트를 가리킵니다. 예외는 프로그램이 비정상적으로 종료되는 것을 방지하고 오류를 처리하는 메커니즘을 제공 → C++ 표준 클래스로 예외의 여러 종류들을 나타내는 여러 자식 클래스들을 두고 있다.• runtime_error 클래스, logic_error 클래스 등등 C++ 표준의 exception 클래스 를 상속받고 있다.#include #include #include int main(){ try { s..
→ 우리에게 익숙한 예외처리는 if문을 이용한 예외처리임.하지만 if문을 보고 예외처리를 위한 코드인지 프로그램의 흐름을 구성하는 코드인지 쉽게 구분하지 못해서 가독성이 떨어짐.C++의 예외처리 메커니즘을 이용하면 가독성을 높일 수가 있다.C++은 구조적으로 예외를 처리할 수 있는 메커니즘을 제공한다.가독성과 유지보수성을 높일 수 있을 뿐만 아니라, 예외의 처리를 프로그램의 일반적인 흐름에서 독립시키는 것이 가능하다.TryTry 블록은 예외 발생에 대한 검사의 범위를 지정할 때 사용됨.즉, try 블록 내에서 예외가 발생하면, C++의 예외처리 메커니즘에 의해서 처리가 된다.try{ // 예외발생 예상지역}try 블록을 묶는 기준은 예외가 발생할만한 영역을 묶는 것이 아니다!예외가 발생할만한 영역만 묶는..