본문 바로가기

c++3

[Effective C++]4. 설계 및 선언 설계 및 선언 항목18. (명언) "제대로 쓰기에는 쉽게, 엉터리로 쓰기에는 어렵게" - 단순 매개변수, var의 저장/TOSS시에도 간단한 wrapper type (ex. year, month, day) - "When in doubt, do as the ints do" - (아예)스마트 포인터를 반환하여 실수 방지 - shared_ptr 은 auto_ptr와 돤리 삭제자를 엮을 수 있다 std::tr::shared_ptr pInv(static_cast(0), getRidOfInvestment); *null 보다 '미리 할 수 있으면' 바로 pInv 생성자에 넘기는 것이 바람직. → (항목 26) "객체가 정말로 필요할 때까지 선언 대기!" - 교차 DLL 문제 : A DLL → new, B DLL → .. 2016. 10. 29.
[Effective C++]2. 생성자, 소멸자 및 대입 연산자 생성자, 소멸자 및 대입 연산자 항목5. 컴파일러산 함수들에 대한 주의 - 복사 생성자. 기본 생성자. 복사 대입 연산자 * 복사 생성자/대입연산자 → 비정적(non static) 멤버 복사 * 기본생성자 → 다른 생성자를 임의로 만든 경우 컴파일러가 만들지 않음 - 참조자 or 상수데이터멤버의 경우 복사 생성자/대입연산자 사용 불가 항목6. 컴파일러산 함수가 필요X → 제거법 1. private로 복사 생성자/대입연산자 생성(cf.friend) & 정의 없이 선언만 2. uncopyable 객체를 상속 (from boost lib) → 컴파일 에러 항목7. 다형성을 가질 기본 클래스는 소멸자를 가상 소멸자로 선언. - ex, 기본클래스 → polyA, B, C : 기본클래스의 ptr 반환 → ptr d.. 2016. 10. 16.
[Effective C++]1. C++에 왔으면 C++의 법을 따릅시다. C++에 왔으면 C++의 법을 따릅시다. 앞으로 몇번에 걸쳐 Effective C++ 각 장마다 정리를 할거다. 최선을 다하겠으나 배우는 과정이라 실수 가능.. 항목1. C++의 다중 패러다임 - 절차지향 - 함수이용 - 객체지향 - 일반화 프로그래밍 - 템플릿 프로그래밍 - STL 요소 - 생성자/소멸자 → '상수 객체에 대한 참조자 전달' (객체의 타입조차 모름) - STL iter (반복자) : C의 포인터 역할 항목2. #define 대신 const, enum, inline 사용 권장 - #define은 선행처리자이며 나머지는 컴파일러가 수행함(헤더파일내 선언) - 상수포인터 정의시 const char * const name = "~"; - *의 왼쪽 : 상수데이터 - *의 오른쪽 : 상수포인터 .. 2016. 10. 14.