정말 제목이 .. 구체적이다.
이유
1. 다향성을 가진 기본 클래스는 파생클래스의 소멸자도 호출해줌으로써, 메모리릭, 신비한 현상 등을 막을수 있기 때문이다.
주의점
1. virtual 의 비용에 대해서 분명 알고 있어야 한다.
참조링크 : http://ikpil.tistory.com/380
2. 순수 가상 소멸자를 사용한다면, 정의를 꼭 써두어야 한다.
왜냐하면 http://www.kwak101.pe.kr/bbs/view.php?id=kwk_worksBBS&no=159 이기 때문이다.
참조
- 기본 클래스의 가상 소멸자로 인한 파생 클래스의 소멸 시점
1. 기본 클래스의 가상 소멸자 호출
2. 1번으로 부터 파생 클래스의 소멸자 호출
3. 2번으로 부터 기본 클래스의 소멸자 호출
- 순수 가상 소멸자의 호출 매카니즘
1. 파생 클래스의 소멸자 호출
2. 컴파일러가 강제로 순수 가상 소멸자 호출(vtbl에는 순수 가상 함수 0으로 초기화 되어 있기 때문이다!)
관령 링크
http://ikpil.tistory.com/296
http://www.kwak101.pe.kr/bbs/view.php?id=kwk_worksBBS&no=159
http://nbloger.net/2690088
이것만은 잊지 말자!
1. 다형성을 가진 클래스에서만 가상 소멸자를 선언해야 한다!(virtual 의 비용이 들기 때문이다)
2. 순수 가상 소멸자는 꼭 정의해 두어야만 한다!
이유
1. 다향성을 가진 기본 클래스는 파생클래스의 소멸자도 호출해줌으로써, 메모리릭, 신비한 현상 등을 막을수 있기 때문이다.
주의점
1. virtual 의 비용에 대해서 분명 알고 있어야 한다.
참조링크 : http://ikpil.tistory.com/380
2. 순수 가상 소멸자를 사용한다면, 정의를 꼭 써두어야 한다.
왜냐하면 http://www.kwak101.pe.kr/bbs/view.php?id=kwk_worksBBS&no=159 이기 때문이다.
참조
- 기본 클래스의 가상 소멸자로 인한 파생 클래스의 소멸 시점
1. 기본 클래스의 가상 소멸자 호출
2. 1번으로 부터 파생 클래스의 소멸자 호출
3. 2번으로 부터 기본 클래스의 소멸자 호출
- 순수 가상 소멸자의 호출 매카니즘
1. 파생 클래스의 소멸자 호출
2. 컴파일러가 강제로 순수 가상 소멸자 호출(vtbl에는 순수 가상 함수 0으로 초기화 되어 있기 때문이다!)
관령 링크
http://ikpil.tistory.com/296
http://www.kwak101.pe.kr/bbs/view.php?id=kwk_worksBBS&no=159
http://nbloger.net/2690088
이것만은 잊지 말자!
1. 다형성을 가진 클래스에서만 가상 소멸자를 선언해야 한다!(virtual 의 비용이 들기 때문이다)
2. 순수 가상 소멸자는 꼭 정의해 두어야만 한다!
'책 정리 > Effective C++ 3판' 카테고리의 다른 글
항목 12: 객체의 모든 부분을 빠짐없이 복사하자 (0) | 2008.06.01 |
---|---|
항목 11: operator=에서는 자기대입에 대한 처리가 빠지지 않도록 하자 (0) | 2008.06.01 |
항목 10: 대입 연산자는 *this의 참조자를 반환하게 하자. (0) | 2008.05.31 |
항목 9: 객체 생성 및 소멸 과정 중에는 절대로 가상 함수를 호출하지 말자 (0) | 2008.05.31 |
항목 8: 예외가 소멸자를 떠나지 못하도록 붙들어 놓자. (0) | 2008.05.31 |
항목 6: 컴파일러가 만들어낸 함수가 필요 없으면 확실히 이들의 사용을 금해 버리자 (0) | 2008.05.31 |
항목 5: C++가 은근슬쩍 만들어 호출해 버리는 함수들에 촉각을 세우자. (0) | 2008.05.31 |
항목 4: 객체를 사용하기 전에 반드시 그 객체를 초기화하자. (0) | 2008.05.31 |
항목 3. 낌새만 보이면 const를 들이대 보자! (0) | 2008.05.29 |
항목 2. #define을 쓰려거든 const, enum, inline을 떠올리자. (0) | 2008.05.29 |
최근댓글