클래스 설계? 타입 설계?
C++에서 새로운 클래스를 설계하는다는것은 타입을 설계하는 것과 같다. 왜냐하면 그 클래스에는 operator 오버로드, 메모리 할당 및 해제, 객체 초기화 및 종료 등 모두 클래스에서 하기 때문이다.
타입은 어떻게 설계 할것인가?
EC++ 3판에서는 많은 것들 중 고수들은 몇가지 질문을 스스로 던저 자신을 괴롭히며 만든다고 한다.
1. 새로 정의한 타입의 객체 생성 및 소멸은 어떻게 이루어져야 하는가?
2. 객체 초기화는 객체 대입과 어떻게 달라야 하는가?
3. 새로운 타입으로 만든 객체가 값에 의해 전달되는 경우에는 어떤 의미를 줄 것인가?
4. 새로운 타입이 가질 수 있는 적법한 값에 대한 제약은 무엇으로 잡을 것인가?
5. 기존의 클래스 상속 계통망에 맞출 것인가?
6. 어떤 종류의 타입 변환을 허용할 것인가?
7. 어떤 연산자와 함수를 두어야 의미가 있는가?
8. 표준 함수들 중 어떤 것을 허용하지 말 것인가?
9. 새로운 타입의 멤버에 대한 접근권한을 어느 쪽에 줄 것인가?
10. 선언되지 않은 인터페이스로 무엇을 둘 것인가?
11. 새로 만드는 타입이 얼마나 일반적인가?
12. 정말로 꼭 필요한 타입인가?
.. 이 질문의 진정한 의미 파악은 할수 없었다 2007/06/05 01:15
이것만은 잊지 말자!
1. 클래스 설계는 타입 설계라는 점을 잊지 말자!
관련링크 - 이해가 안갈때는 관련글들을 마구 잡이식으로 읽어 생각해 보면, 이해가 잘 간다.
http://cool-uk.tistory.com/category/DEV-JAVA
http://poets11.tistory.com/29
http://www.ologist.co.kr/266
http://kldp.org/node/39533
http://gyumee.egloos.com/1021396
http://babonamu.egloos.com/569846
http://blue4lu.egloos.com/1678498
C++에서 새로운 클래스를 설계하는다는것은 타입을 설계하는 것과 같다. 왜냐하면 그 클래스에는 operator 오버로드, 메모리 할당 및 해제, 객체 초기화 및 종료 등 모두 클래스에서 하기 때문이다.
타입은 어떻게 설계 할것인가?
EC++ 3판에서는 많은 것들 중 고수들은 몇가지 질문을 스스로 던저 자신을 괴롭히며 만든다고 한다.
1. 새로 정의한 타입의 객체 생성 및 소멸은 어떻게 이루어져야 하는가?
2. 객체 초기화는 객체 대입과 어떻게 달라야 하는가?
3. 새로운 타입으로 만든 객체가 값에 의해 전달되는 경우에는 어떤 의미를 줄 것인가?
4. 새로운 타입이 가질 수 있는 적법한 값에 대한 제약은 무엇으로 잡을 것인가?
5. 기존의 클래스 상속 계통망에 맞출 것인가?
6. 어떤 종류의 타입 변환을 허용할 것인가?
7. 어떤 연산자와 함수를 두어야 의미가 있는가?
8. 표준 함수들 중 어떤 것을 허용하지 말 것인가?
9. 새로운 타입의 멤버에 대한 접근권한을 어느 쪽에 줄 것인가?
10. 선언되지 않은 인터페이스로 무엇을 둘 것인가?
11. 새로 만드는 타입이 얼마나 일반적인가?
12. 정말로 꼭 필요한 타입인가?
.. 이 질문의 진정한 의미 파악은 할수 없었다 2007/06/05 01:15
이것만은 잊지 말자!
1. 클래스 설계는 타입 설계라는 점을 잊지 말자!
관련링크 - 이해가 안갈때는 관련글들을 마구 잡이식으로 읽어 생각해 보면, 이해가 잘 간다.
http://cool-uk.tistory.com/category/DEV-JAVA
http://poets11.tistory.com/29
http://www.ologist.co.kr/266
http://kldp.org/node/39533
http://gyumee.egloos.com/1021396
http://babonamu.egloos.com/569846
http://blue4lu.egloos.com/1678498
'책 정리 > Effective C++ 3판' 카테고리의 다른 글
항목 24: 타입 변환이 모든 매개변수에 대해 적용되어야 한다면 비멘버 함수를 선언하자 (0) | 2008.06.15 |
---|---|
항목 23: 멤버 함수보다는 비멤버 비프렌드 함수와 더 가까워지자. (0) | 2008.06.07 |
항목 22: 데이터 멤버가 선언될 곳은 private 영역임을 명심하자 (0) | 2008.06.07 |
항목 21: 함수에서 객체를 반환해야 할 경우에 참조자를 반환하려고 들지 말자. (0) | 2008.06.07 |
항목 20: '값에 의한 전달'보다는 '상수객체 참조자에 의한 전달'방식을 택하는 편이 대개 낫다. (0) | 2008.06.06 |
항목 18: 인터페이스 설계는 제대로 쓰기엔 쉽게, 엉터리로 쓰기엔 어렵게 하자. (0) | 2008.06.04 |
항목 17: new로 생성한 객체를 스마트 포인터에 저장하는 코드는 별도의 한 문장으로 만들자 (0) | 2008.06.03 |
항목 16: new 및 delete를 사용할 때는 형태를 반드시 맞추자 (0) | 2008.06.03 |
항목 15: 자원 관리 클래스에서 관리되는 자원은 외부에서 접근할 수 있도록 하자. (0) | 2008.06.02 |
항목 14: 자원 관리 클래스의 복사 동작에 대해 진지하게 고찰하자 (0) | 2008.06.01 |
최근댓글