항목 4 : 쓸데 없는 기본 생성자는 그냥 두지 말자.
개념 정리
1. 클래스 생성시 기본적으로 생성되는 함수들이 무엇이 있는지 알아야 한다. operator 까지!
2. 1번의 사항과 더블어 각각의 기본적인 상태도 알아야 한다.
이유
1. 기본 생성자가 없을 경우, 배열의 생성이나 new 연산을 사용 할수 없다.
2. 기본 생성자가 없을 경우, 템플릿 기반의 콘테이너를 사용 할수 없다.
해결방법
1. 쓸데없이 생성자 정의는 하지 마라.
2. 만약 기본 생성자가 없다면, 자신에 맞는 기본생성자를 만들어 주라.
주의점
1. 이 이야기는 기본 생성자가 다른 용도로 쓰일 때, 본래 목적의 기본생성자가 있어야 한다.
2. 배열 선언시나 new를 객체 배열들이거나 기본생성자 ()를 사용 한다는 점을 알고 있어야 한다.
3. 기본 생성자는 tag() 형태이기 때문에 외부에서 들어 오는 정보가 없다. 그렇기 때문에 초기화가 어렵다.
개인적인 생각
1. 뭐 간단한 코딩이라면, 신경 안써도 되겠지만, 코딩 습관으로 본다면, ... 역시 해주는 편이 좋을 것 이다.
2. 기본 생성자는 class tag 일때 tag() 를 말하는 것이고 생성자는 tag(),tag(int a), tag(double b) 도 있다
3. 쓸때 없는거 자체는 원래 효율에서 떨어진다. 생성자를 쓸때는 꼭 필요할때만 사용 하는게 좋을듯 싶다.
4. 레퍼런스로 멤버로 갖는 데이터의 경우, .. 기본 생성자에서 처리해줘야 할게 많으므로 포인터로 처리하는게 속편할듯 싶다.
졸리다 그만 자자.
개념 정리
1. 클래스 생성시 기본적으로 생성되는 함수들이 무엇이 있는지 알아야 한다. operator 까지!
2. 1번의 사항과 더블어 각각의 기본적인 상태도 알아야 한다.
이유
1. 기본 생성자가 없을 경우, 배열의 생성이나 new 연산을 사용 할수 없다.
2. 기본 생성자가 없을 경우, 템플릿 기반의 콘테이너를 사용 할수 없다.
해결방법
1. 쓸데없이 생성자 정의는 하지 마라.
2. 만약 기본 생성자가 없다면, 자신에 맞는 기본생성자를 만들어 주라.
주의점
1. 이 이야기는 기본 생성자가 다른 용도로 쓰일 때, 본래 목적의 기본생성자가 있어야 한다.
2. 배열 선언시나 new를 객체 배열들이거나 기본생성자 ()를 사용 한다는 점을 알고 있어야 한다.
3. 기본 생성자는 tag() 형태이기 때문에 외부에서 들어 오는 정보가 없다. 그렇기 때문에 초기화가 어렵다.
개인적인 생각
1. 뭐 간단한 코딩이라면, 신경 안써도 되겠지만, 코딩 습관으로 본다면, ... 역시 해주는 편이 좋을 것 이다.
2. 기본 생성자는 class tag 일때 tag() 를 말하는 것이고 생성자는 tag(),tag(int a), tag(double b) 도 있다
3. 쓸때 없는거 자체는 원래 효율에서 떨어진다. 생성자를 쓸때는 꼭 필요할때만 사용 하는게 좋을듯 싶다.
4. 레퍼런스로 멤버로 갖는 데이터의 경우, .. 기본 생성자에서 처리해줘야 할게 많으므로 포인터로 처리하는게 속편할듯 싶다.
졸리다 그만 자자.
'책 정리 > More Effective C++ 1판' 카테고리의 다른 글
항목 9 : 리소스 누수를 피하는 방법의 정공은 소멸자이다. (0) | 2008.05.16 |
---|---|
궁극의 예외처리 (0) | 2008.05.16 |
항목 8 : new 와 delete의 의미를 정확히 구분하고 이해하자 (0) | 2008.05.15 |
항목 7 : &&, ||, 혹은 , 연산자는 오버로딩 대상이 절대로 아니다 (1) | 2008.05.15 |
항목 6 : 증가 및 감소 연산자의 전위/후위 형태를 반드시 구분하자 (0) | 2008.05.15 |
항목 5 : 사용자 정의 타입변환 함수에 대한 주의를 놓지 말자. (0) | 2008.05.15 |
항목 3 : 배열과 다형성은 같은 수준으로 놓고 볼 것이 아니다. (0) | 2008.05.14 |
항목 2 : 가능한 C++ 스타일의 캐스트를 즐겨 쓰자 (0) | 2008.05.14 |
항목 1 : 포인터와 참조자를 구분하자 (0) | 2008.05.14 |
이 책은.. (0) | 2008.05.14 |
최근댓글