Effective C++ 3판 4

[요약] Effective C++ 3장 (항목13~17)

[요약] Effective C++ 3장 (항목13~17) 3장 자원 관리 항목 13: 자원 관리에는 객체가 그만! 투자에 대한 최상위 클래스 라이브러리가 있다고 가정하자. 1: class Investment { ... }; // 여러 형태의 투자를 모델링한 2: // 클래스 계통의 최상위 클래스 이 라이브러리에 Investment에서 파생된 클래스의 객체를 사용자가 얻어내는 용도로 팩토리 함수(항목 7참조)만을 쓰도록 만들어져 있다고 하자. 1: Investment* createInvestment(); // Investment 클래스 계통에 속한 클래스의 객체를 2: // 동적할당하고 그 포인터를 반환한다. 3: // 이 객체의 해제는 호출자 쪽에서 직접 해야한다. createInvestment 함수를 ..

[요약] Effective C++ 2장-2 (항목09~12)

[요약] Effective C++ 2장-2 (항목09~12) 2장 생성자, 소멸자 및 대입 연산자 - 2 항목 09: 객체 생성 및 소멸 과정 중에는 절대로 가상 함수를 호출하지 말자 객체 생성 및 소멸 과정 중에는 절대로 가상 함수를 호출하지 말아야 하는- * 두. 가. 지. 이. 유. !!! 1) 우선 호출 결과가 여러분이 원하는 대로 돌아가지 않을 것이고, 2) 원하는 대로 돌아간다고 해도 여러분은 여전히 방귀를 세 시간은 참은 것 같은 얼굴을 하고 있을 것이기 분명하기 때문이다. 주식 거래를 본뜬 클래스 계통 구조가 있다고 가정하자. 여기엔 매도주문, 매수주문 등등이 있다. 주식거래 모델링에서 가장 중요한 포인트라면 감사(audit) 기능이 있어야 한다는 것이다. 그렇기 때문에 감사로그(audit..

[요약] Effective C++ 2장-1 (항목05~08)

[요약] Effective C++ 2장-1 (항목05~08) 2장 생성자, 소멸자 및 대입 연산자 - 1 항목 05: C++이 은근슬쩍 만들어 호출해 버리는 함수들에 촉각을 세우자 빈 클래스(empty class)를 프로그래머가 선언할때에 자동적으로 컴파일러는 기본생성자(default constructor), 복사생성자(copy constructor), 복사대입연산자(copy assignment operator), 그리고 소멸자(destructor)를 선언한다. 1: class Empty{}; 만약 여러분이 위와 같이 썼다면, 1: class Empty{ 2: public: 3: Empty() { ... } // 기본 생성자 4: Empty(const Empty &rhs) { ... } // 복사 생성자..

[요약] Effective C++ 1장 (항목01~04)

[요약] Effective C++ 1장 (항목01~04) 1장 C++에 왔으면 C++의 법을 따릅시다. 항목 01: C++를 언어들의 연합체로 바라보는 안목은 필수 1> C++ : C, Object Oriented C++, Template C++, STL(Standard Template Library) - C++은 한 가지 프로그래밍 규칙 아래 똘돌 뭉친 통합 언어(unified language)가 아니라, 네가지 하위 언어들의 연합체 - 값을 넘겨줄때... 아래의 방법을 추천 C: call by value C++: call by reference STL: call by value(pointer) *이것만은 잊지 말자! ** C++를 사용한 효과적인 프로그래밍 규칙은 경우에 따라 달라집니다. 그 경우란,..