들어가기 전 보고 가자! https://wo-dbs.tistory.com/179 vector max_element, min_element →vector 컨테이너에서 최대값, 최소값을 구할 경우 for문을 작성할 수도 있지만 이는 복잡하다. 그래서 algorithm 라이브러리에 있는 max_element를 사용한다면 한줄로도 간단하게 최대값을 구할 수 있 wo-dbs.tistory.com 이번 문제는 컨테이너의 라이브러리를 사용해보는 문제. 문제 조건대로 한 번 구현해보자. 최대 N개의 정수를 저장할 수 있는 Span 클래스를 개발합니다. N은 부호 없는 int 변수이며 생성자에 전달되는 유일한 매개 변수입니다. class Span{ private: std::vector vec; unsigned int N..
ex01
Iter이라는 함수가 있는데 이 함수의 조건을 말해줌. 아무것도 반환하지 않는 함수 템플릿 iter 첫 번째 매개변수는 배열의 주소입니다. 두 번째는 배열의 길이입니다. 세 번째는 배열의 모든 요소에 대해 호출되는 함수입니다. iter.hpp #ifndef WHATEVER_HPP # define WHATEVER_HPP #include template void iter(T *array, int len, void (*func)(T &)) { if (len
들어가기 전 보고 가자 https://wo-dbs.tistory.com/167 reinterpret_cast reinterpret_cast()는 static_cast()보다 안전성은 조금 떨어지며, C++에서 가장 강력하면서도 위험한 형변환 중 하나이다. C++ 타입 규칙에서 허용하지 않더라도 상황에 따라 캐스팅하는 것이 적합할 때 wo-dbs.tistory.com ex01은 reinterpret_cast에 대해서 잘 알고 있는 지 확인해보는 문제이다. 개념을 잘 알면 문제가 잘 풀릴 것이다. prev를 선언하여 next에 넣어준 후 prev랑 next를 연결시켜주는 문제. #include "Data.hpp" uintptr_t serialize(Data* ptr) { return(reinterpret_c..
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 ..
들어가기 전 깊은 복사를 공부하고 가자 https://wo-dbs.tistory.com/153 깊은 복사 여기서는 깊은 복사에 대한 개념을 위주로 보기 보단 코드로 작성 예시를 보겠다 얕은 복사와 깊은 복사로 나뉘게 되는데 보통 우리는 얕은 복사를 사용하게 된다. 하지만 동적 할당을 한 후 얕 wo-dbs.tistory.com ex00에서 파일 그대로 복사하고 추가해야될 파일은 Brain.cpp Brain.hpp, 수정해야될 파일은 Dog.cpp, Cat.cpp Brain.hpp Brain.cpp 만들기 #ifndef BRAIN_HPP # define BRAIN_HPP #include "iostream" class Brain { private: std::string ideas[100]; public: B..
ex01을 하기전 상속에 대한 공부를 해보자 https://wo-dbs.tistory.com/147 C++ 상속 상속(inheritance)이란? “일정한 친족적 관계가 있는 사람 사이에 한 쪽이 사망하거나 법률상의 원인이 발생하였을 때 재산적 또는 친족적 권리와 의무를 계승하는 제도” 라고 네이버 사전에 정 wo-dbs.tistory.com 공부를 한 후 상속 오버라이딩 https://wo-dbs.tistory.com/148 C++ 상속 오버라이딩 현재 ScavTrap이 ClapTrap을 상속받은 상태 ScavTrap.hpp #ifndef SCAVTRAP_HPP # define SCAVTRAP_HPP # include # include "ClapTrap.hpp" class ScavTrap : publi..
밑에 부분을 보기 전 공부해야할 1. 이진 기수법 https://wo-dbs.tistory.com/141 이진 기수법(이진법) 컴퓨터는 0과 1로 이루어진 기계어를 사용한다. 우리 사람은 수를 표현할 때 10진법을 사용한다 → 10진법은 0, 1, 2, 3, 4, 5, 6, 7, 8, 9을 말함. 컴퓨터는 0과 1인 이진법으로 수를 저장하게 된다. → 이 wo-dbs.tistory.com 2. 고정소수점과 부동소수점 https://wo-dbs.tistory.com/142 이진 기수법을 통한 고정 소수점과 부동 소수점 이 글은 이 분의 블로그 통해 공부한 글입니다. 이진 기수법을 통한 고정 소수점(Fixed Point) 와 부동 소수점(Floating Point) 이진 기수법을 통한 고정 소수점(Fixed..
기능 명세서 두 가지 클래스 구현 PhoneBook 연락처 배열 최대 8개의 연락처 저장 가능. 9번째 연락처를 추가하려고 하면 가장 오래된 연락처를 새 연락처로 동적 할당 Contact 전화번호부 연락처를 나타냄. 전화번호부 → PhoneBook 클래스의 인스턴스로 인스턴스화 되어야함. 연락처도 마찬가지, 각각은 Contact 클래스의 인스턴스로 인스턴스화 되어야함. 클래스는 자유롭게 디자인 but 클래스 내에서 사용되는 것 모든 것 비공개 main.cpp #include "PhoneBook.hpp" int main(void) { PhoneBook phoneBook; std::string temp; while (1) { phoneBook.startUp(); std::getline(std::cin, te..