More Related Content
Similar to Effective c++ 1
Similar to Effective c++ 1 (20)
Effective c++ 1
- 8. Const를 사용할 때
•포인터 사용시 상수포인터를 정의
•포인터가 가리키는 대상도 상수로 정의
•Const char * const myFavorite = “D-Frag!”;
•Cont std::string myFavoriteChar = “Takao”;
- 13. Enum의 특징
•Const는 주소값에 접근할 수 있다.
•Enum은 주소값에 접근하는 것은 불법이다.
•절대 쓸데 없는 메모리 할당이 없다.
•나열자 둔갑술은 상당히 많이 사용된다.
•프로그래머는 닌자일지도 모른다.
- 17. 레퍼런스(참조자)를 사용해야 할 때
•참조하고자 하는 객체를 미리 알고 있을 때
•다른 객체를 바꾸어 참조할 일이 없을 때
•포인터를 사용하면 문법상 어색해질 때
- 44. 컴파일러가 거부하는 경우
•클래스를 구현한 코드가 적합하지 않거나 이치에
맞지 않을 경우
•예를 들면 참조자 멤버가 있는 경우
•이럴 경우 사용자가 직접 대입연산을 정의 해줘야
한다.
- 48. 문제점
팩토리 함수에서 받는 함수는 Timekeeper를 상속받는 파생클래스다.
따라서 할당 받은 메모리를 해제할 때 Timekeeper부분만 해제되고 파생클래스부분은 해제되지
못한 부분해제현상이 생김.
- 49. 해결
소멸자를 가상함수로 만들어 가상함수 테이블을 생성, 파생클래스의 소멸자를 가리켜 해
제시에 호출되도록 한다.
쓸때없이 가상함수테이블을 만들어 메모리를 차지하지 말자.
- 64. 거울을 보거든 그저 가만히 보기만 하라
하지만 new에 대한 예외에는 안전하지 않다.
- 67. Operator=()을 사용할 시 주의 사항_3
양현찬 : 멤버변수 하나 추가하면 함수에도 내용
을 추가해야 한다. 초기화 리스트에 추가하는 것
도 귀찮은데 이런 것도 해줘야 하나?
컴파일러 : ㅇㅇ
- 68. 상속받은 클래스임에도 불구하고 초기화 리
스트에 상속받은 인자가 명시되지 않아
operator=함수에서 자기가 가진 고유한 멤
버만 복사된다!
계속되는 문제