들어가기 전 보고 가자! STL,반복자 개념 https://wo-dbs.tistory.com/176 STL, 컨테이너, 반복자 개념 STL(Standard Template Library)이란? → 프로그램에 필요한 자료구조와 알고리즘을 Template로 제공하는 라이브러리 STL은 C++을 위한 라이브러리로 알고리즘, 컨테이너, 함수자, 반복자 4가지로 구성되어 wo-dbs.tistory.com 컨테이너 vector https://wo-dbs.tistory.com/177 vector vector 기본 사용법 → std::vector는 가변 크기의 배열을 나타내는 C++ 표준 라이브러리 컨테이너이다. 이는 배열과 유사하지만 크기를 동적으로 조정할 수 있는 장점을 가지고 있습니다. 아래는 std:: wo-d..
ex00
들어가기 전 공부하고 가자! https://wo-dbs.tistory.com/172 C++ template(템플릿) → 템플릿은 함수나 클래스를 개별적으로 다시 작성하지 않아도, 여러 자료 형으로 사용할 수 있도록 하게 만들어 놓은 것. 함수 템플릿(Function Template), 클래스 템플릿(Class Template)로 나뉜다. 좀 wo-dbs.tistory.com 이번 문제는 템플릿을 한 번 사용해보라는 문제이다. swap, min, max의 값을 구하는 템플릿 함수를 작성하면 된다. #ifndef WHATEVER_HPP # define WHATEVER_HPP template void swap(T &a, T &b) { T tmp = a; a = b; b = tmp; } template T mi..
들어가기 전 공부하고 가자 리터널, 상수 https://wo-dbs.tistory.com/164 리터널, 상수 이번에는 프로그래밍 언어에서 리터널, 상수라는 이야기가 나오게 되는데 이걸 공부해보자. 리터널 리터널(literal)은 프로그래밍 언어에서 고정된 값을 나타내는 표현 방식 코드 상에서 직접 사 wo-dbs.tistory.com inff, inf, nan, NAN https://wo-dbs.tistory.com/165 inff, inf, nan, NAN inff, inf inff, inf는 양의 무한대를 나타내는 부동 소수점 리터널 상수이다. double, float에서 사용하는 상수가 나뉘어지는데 밑 표를 보고 이히해보자. double float 양의 무한대 부동 소수점 리터널 상 wo-dbs...
들어가기 전 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 클래스를 통해 시스템 상 내부에서 알아서 발생한 예외..
들어가기 전 밑 블로그에서 가상 함수를 공부하고 가자 ~~ https://wo-dbs.tistory.com/152 C++ 가상 함수 가상 함수란 가상함수는 부모 클래스에서 상속받을 클래스에서 재정의할 것으로 기대하고 정의해놓은 함수이다. virtual이라는 예악어를 함수 앞에 붙여서 생성할 수 있으며 이렇게 생성된 가상 wo-dbs.tistory.com Animal을 먼저 만들자. virtual을 통해 소멸자와, makeSound 구현 Animal.hpp #ifndef ANIMAL_HPP # define ANIMAL_HPP #include class Animal { protected: std::string type; public: Animal(void); Animal(const Animal &obj); ..
00에서 나오는 개념은 없다 문제대로 구현해주자. ClapTrap 구현 ClapTrap.hpp #ifndef CLAPTRAP_HPP # define CLAPTRAP_HPP # include class ClapTrap{ private: std::string name; unsigned int hitPoint; unsigned int energyPoint; unsigned int attackDamage; public: ClapTrap(); ~ClapTrap(); ClapTrap(std::string name); ClapTrap(const ClapTrap& ClapTrap); ClapTrap& operator=(const ClapTrap& obj); void attack(const std::string& tar..
ex00은 아직 소수점에 대한 이야기는 하지 않고 복사 생성자, 오버로드 vs 오버라이딩, 복사 할당(대입) 연산자에 대해서 말하고 있다. 나의 글의 C++의 복사 생성자, 오버로드 vs 오버라이딩, 복사 할당 연산자에 대해서 보고 오면 좋을 것 같다. 복사 생성자, 복사 할당(대입) 연산자 https://wo-dbs.tistory.com/category/C%2B%2B/C%2B%2B%20%EB%B3%B5%EC%82%AC%20%EC%83%9D%EC%84%B1%EC%9E%90%2C%20%EB%B3%B5%EC%82%AC%20%ED%95%A0%EB%8B%B9%20%EC%97%B0%EC%82%B0%EC%9E%90%28Canonical%20form%29 'C++/C++ 복사 생성자, 복사 할당 연산자(Canonic..
동적 할당을 해보는 문제 변수의 메모리를 new를 통해 동적 할당하는 경우 데이터는 힙 영역에 저장됨 힙에 저장된 데이터는 프로그램이 끝날때까지 유지되기 때문에 더이상 사용하지 않는 경우 반드시 delete로 해제시켜주어야 함 힙에 할당하는 것은 비교적 속도가 느리고, 포인터를 역참조하여 변수의 값에 접근하는 것 역시 직접 접근하는 것보다는 느림 일반적으로 변수를 선언할 경우 정적 할당되어 데이터는 스택 영역에 저장됨 스택 영역에 저장된 데이터는 해당 변수가 지정된 범위(scope)를 벗어날시 자동으로 해제 및 소멸 스택에 할당하는 것은 비교적 속도가 빠르지만, 스택 자체의 크기가 비교적 작으므로 유의해야함 fun_zombie → 함수로 만들어진 좀비 Foo → 클래스 좀비 heap → 동적 할당 좀비 ..