# CPP

- [\[CPP-08\] STL containers, iterators, algorithms](/fork-my-brain/cpp/cpp-08-stl-containers-iterators-algorithms.md): 과제의 핵심은 stack이 CPP에서 <컨테이너 어댑터>라는 점을 인식하는 것이다.
- [\[CPP-06\] CPP 형변환 연산자](/fork-my-brain/cpp/cpp-06-cpp.md): ex00과제에서 static\_cast 를, ex01과제에서 reinterpret\_cast 를, ex02과제에서 dynamic\_cast 에 대해 학습한다.
- [\[CPP-04  ex02\] 인터페이스(Interface) 클래스](/fork-my-brain/cpp/cpp-04-ex02-interface.md): 바람직한 추상 클래스 == 인터페이스
- [\[CPP-04  ex00\] 다형성(Polymorphism) 및 가상함수](/fork-my-brain/cpp/cpp-04-ex00-polymorphism.md): 과제를 요약하자면, 마법사 Sorcerer가 불쌍한 Victim 과 Peon을 동물로 변신시켜버리는 내용이다. 이 때 마법에 당한(?) Victim과 Peon은 같은 getPolymorphed() 메서드를 호출하지만, 그 실행 결과는 다르다.
- [\[CPP-02\] Canonical 클래스 복사 생성자와 대입 연산자 오버로딩](/fork-my-brain/cpp/cpp-02-canonical.md)
- [\[CPP-07\] Templates](/fork-my-brain/cpp/cpp-07-templates.md): 함수 템플릿을 사용하면 서로 다른 타입에서 동작하는 함수를 한 번에 정의할 수 있다.
- [\[CPP-01\] this 포인터와 문자열 스트림(stringstream)](/fork-my-brain/cpp/cpp-01-this-stringstream.md): this와 stringstream 을 활용해 인스턴스의 주소값을 문자열로 얻을 수 있다.
- [\[CPP-01\] 클래스의 정적할당과 동적할당 new, delete](/fork-my-brain/cpp/cpp-01-new-delete.md): new 는 1.메모리 할당, 2.생성자 호출, 3.타입 변환 까지 총 세 가지의 일을 한다. malloc보다 훨씬 유용하다.
- [\[CPP-01\] 파일 입출력 및 문자열 치환하기](/fork-my-brain/cpp/cpp-01.md): 텍스트 파일의 특정 문자열을 원하는 문자열로 치환하는 프로그램 만들기
- [\[CPP-01\] 참조자(reference)와 포인터는 다르다](/fork-my-brain/cpp/cpp-01-reference.md): 참조자와 포인터의 차이점, 그리고 댕글링 레퍼런스의 위험성과 그것을 해결하는 방법 중 하나인 Const 참조자에 대한 정리.
- [\[CPP-02\] 정수부동소수값 - 고정소수값 변환](/fork-my-brain/cpp/cpp-02.md): fractional bits가 8일 때 공식을 정리하자면 다음과 같다.
- [\[CPP-04  ex01\] 추상 클래스의 필요성 순수 가상함수](/fork-my-brain/cpp/cpp-04-ex01.md): 추상 클래스의 특징은 오버라이드, 즉 '함수를 반드시 재정의해야하는 것'이라고 정리할 수 있을 것 같다. 순수 가상함수를 재정의하지 않으면 코드 상에서 에러로 판단하기 때문에 실수들을 방지할 수 있다.
- [\[CPP-00\] Megaphone!  CPP 표준입출력](/fork-my-brain/cpp/cpp-00-megaphone-cpp.md): CPP의 std i/o stream, namespace 에 대한 기본적인 정리
- [\[CPP-03\] (ClapTrap이 뭐지) 다중 상속과 가상 상속](/fork-my-brain/cpp/cpp-03-claptrap.md): 다중 상속 클래스 객체 생성시의 문제점은, 기초 클래스 ClapTrap이 불필요하게 두 번 생성된다는 점이다.
- [\[CPP-05\] 예외 처리 (exception handling)](/fork-my-brain/cpp/cpp-05-exception-handling.md): C에서는 조건문(if)를 통해서 예외를 처리했었지만, CPP에서는 보다 더 직관적인 문법을 제공한다.
- [\[CPP-00\] 객체지향의 관점으로 클래스 이해하기](/fork-my-brain/cpp/cpp-00.md): My Awesome Phonebook 과제를 통해 객체지향으로 프로그램을 설계하는 방법, 생성자로 인스턴스를 생성하는 방법, 접근제어 지시자와 const 함수로 좋은 클래스를 정의하는 방법을 학습했다.
- [\[CPP-01\] 랜덤값 얻기](/fork-my-brain/cpp/cpp-01-1.md): 진짜 '랜덤'한 수를 얻으려면 seed에 매번 다른 숫자를 넣어 srand함수로 rand함수를 초기화 해줘야 한다. 이때 매번 다른 수를 어떻게 넣어줄 수 있을까?
