쾌락없는 책임 (공부)/Effetive C++ 요약본
-
[Effective C++] 3장(1) - 자원 관리쾌락없는 책임 (공부)/Effetive C++ 요약본 2022. 3. 11. 14:50
본 카테고리는 프로텍 미디어의 '이펙티브 C++'을 보고 요약하는 카테고리입니다. 3판을 기준으로 하며 전체 내용이 아닌 간략한 내용만을 요약하고 있습니다. 항목 13 : 자원 관리에는 객체가 그만! void f(){ Investment *p = createInvestment(); ... delete p; } 팩토리 함수에서 객체를 만들어 사용한 뒤 delete를 하는 모습인데 만일 delete가 실행되지 않는다면 어떨까요? 위 ... 에서 예외가 있다던가 continue가 있었다던가 등등 여러 이유에서 말이죠. 프로그램을 만들때 이런 사항들에 잘 대응해야겠지만 유지보수 측면에서 이런 상황들을 배제 할 필요가 있습니다. 그래서 나온 방법이 자원을 객체에 넣고 그 자원 해제를 소멸자가 하게 하는 것입니다!..
-
[Effective C++] 2장(2) - 생성자, 소멸자 및 대입 연산자쾌락없는 책임 (공부)/Effetive C++ 요약본 2022. 3. 10. 13:38
본 카테고리는 프로텍 미디어의 '이펙티브 C++'을 보고 요약하는 카테고리입니다. 3판을 기준으로 하며 전체 내용이 아닌 간략한 내용만을 요약하고 있습니다. 항목 9 : 객체 생성 및 소멸 과정 중에는 가상 함수를 호출하지 말자 이유는 2가지입니다. 호출 결과가 원하는대로 돌아가지 않을 것이고 돌아간다고 해도 이상할 것이기 때문이죠. class Transactino { public: Transaction(); virtual void LogTransaction() const = 0; ... }; Transaction::Transaction(){ ... LogTansaction(); } class BuyTransaction : public Transaction{ public: virtual void LogT..
-
[Effective C++] 2장(1) - 생성자, 소멸자 및 대입 연산자쾌락없는 책임 (공부)/Effetive C++ 요약본 2022. 3. 6. 21:50
본 카테고리는 프로텍 미디어의 '이펙티브 C++'을 보고 요약하는 카테고리입니다. 3판을 기준으로 하며 전체 내용이 아닌 간략한 내용만을 요약하고 있습니다. 항목 5 : C++가 은근슬쩍 만들어 호출해 버리는 함수들에 촉각을 세우자 class Empty{}; 이 클래스가 사실은 class Empty{ public: Empty(){...} // 생성자 Empty(const Empty & rhs){...} // 복사 생성자 ~Empty(){...} // 소멸자 Empty& operator = (const Empty & rhs) {...} // 복사 대입 연산자 } 가장 대표적인 예시가 생성자로 만일 맞는 생성자가 없으면 컴파일러가 자동으로 만들어주게 됩니다. 그리고 자동으로 만드는 함수들은 전부 public..
-
[Effective C++] 1장 - C++에 왔으면 C++의 법을 따릅시다쾌락없는 책임 (공부)/Effetive C++ 요약본 2022. 2. 16. 20:15
본 카테고리는 프로텍 미디어의 '이펙티브 C++'을 보고 요약하는 카테고리입니다. 3판을 기준으로 하며 전체 내용이 아닌 간략한 내용만을 요약하고 있습니다. 항목 1 : C++를 언어들의 연합체로 바라보는 안목은 필수 현대 C++은 발전을 거듭해서 다중 패러다임 프로그래밍 언어로 불리기도 합니다. 이는 진짜로 여러 언어로 이루어진 게 아니라 '관점'을 다양하게 보고 설계를 하자는 이야기입니다. - C 관점에서 C++ - 객체 지향 관점에서 C++ - 탬플린 관점에서 C++ - STL 관점에서 C++ 각 관점에 따라 설계 스타일이 달라지는데 C 관점에서는 값 전달 위주로, 객체지향 관점, 템플릿에서는 생성/소멸자로 상수 객체 참조자에 의한 전달(pass by reference to const)을 선호, S..