이유
1. 은글슬쩍 만들어 호출해 버리는 함수들이 벌레의 밥이기 때문이다.
주의점
1. 은근슬쩍 만들어 호출하는 함수들은
- 기본 생성자 : Empty(){ .. } 를 말함
- 복사 생성자 : Empty(const Empty& rhs) { .....} 를 말함
- 소멸자 : ~Empty() { ...} 를 말함
- 복사 대입 연산자 : Empty& operator= (const Empty& rhs){ ....} 를 말함
참조
1. 기본 생성자는 복사 생성자를 제외한 생성자를 만들면 C++이 만들어 주지 않는다.
2. 복사 생성자만은 꼭 정의해두지 않으면 무조건 만들어 준다.
3. 소멸자만은 꼭 정의해두지 않으면 무조건 기본 소멸자가 만들어 진다.
4. 복사 대입 연산자만은 꼭 정의해두지 않으면 무조건 기본 복사 대입 연산자가 만들어 진다.
관련 링크
http://nbloger.net/2690086
http://zeniroy.springnote.com/pages/17563
http://chiarang.egloos.com/1685406
http://ikpil.tistory.com/346
http://redinlife.egloos.com/1611549
http://chiarang.egloos.com/1685433
http://chiarang.egloos.com/1685521
http://babonamu.egloos.com/1090073
1. 은글슬쩍 만들어 호출해 버리는 함수들이 벌레의 밥이기 때문이다.
주의점
1. 은근슬쩍 만들어 호출하는 함수들은
- 기본 생성자 : Empty(){ .. } 를 말함
- 복사 생성자 : Empty(const Empty& rhs) { .....} 를 말함
- 소멸자 : ~Empty() { ...} 를 말함
- 복사 대입 연산자 : Empty& operator= (const Empty& rhs){ ....} 를 말함
참조
1. 기본 생성자는 복사 생성자를 제외한 생성자를 만들면 C++이 만들어 주지 않는다.
2. 복사 생성자만은 꼭 정의해두지 않으면 무조건 만들어 준다.
3. 소멸자만은 꼭 정의해두지 않으면 무조건 기본 소멸자가 만들어 진다.
4. 복사 대입 연산자만은 꼭 정의해두지 않으면 무조건 기본 복사 대입 연산자가 만들어 진다.
관련 링크
http://nbloger.net/2690086
http://zeniroy.springnote.com/pages/17563
http://chiarang.egloos.com/1685406
http://ikpil.tistory.com/346
http://redinlife.egloos.com/1611549
http://chiarang.egloos.com/1685433
http://chiarang.egloos.com/1685521
http://babonamu.egloos.com/1090073
'책 정리 > Effective C++ 3판' 카테고리의 다른 글
항목 10: 대입 연산자는 *this의 참조자를 반환하게 하자. (0) | 2008.05.31 |
---|---|
항목 9: 객체 생성 및 소멸 과정 중에는 절대로 가상 함수를 호출하지 말자 (0) | 2008.05.31 |
항목 8: 예외가 소멸자를 떠나지 못하도록 붙들어 놓자. (0) | 2008.05.31 |
항목 7: 다향성을 가진 기본 클래스에서는 소멸자를 반드시 가상 소멸자로 선언하자 (0) | 2008.05.31 |
항목 6: 컴파일러가 만들어낸 함수가 필요 없으면 확실히 이들의 사용을 금해 버리자 (0) | 2008.05.31 |
항목 4: 객체를 사용하기 전에 반드시 그 객체를 초기화하자. (0) | 2008.05.31 |
항목 3. 낌새만 보이면 const를 들이대 보자! (0) | 2008.05.29 |
항목 2. #define을 쓰려거든 const, enum, inline을 떠올리자. (0) | 2008.05.29 |
항목 1. C++를 언어들의 연합체로 바라보는 안목은 필수 (0) | 2008.05.29 |
Effective C++ 3판을 공부하기에 앞서... (0) | 2008.05.29 |
최근댓글