{

왜냐하면 클래스를 어정쩡하게 만들면, 가독성이나 각종 논리적 에러에 혼란이 오기 때문이다. 일반적으로 각 상황에 맞는 클래스 작성법을 설명한다.

값들을 저장하는 클래스
1. 복사 할당자, 복사 생성자가 존재한다.
2. 가상 함수가 없다.
3. 클래스의 객체 자체가 직접 사용 된다.
4. 기본 자료형 처럼 쓰인다.

기반 클래스
1. 공용이면서 가상이거나 보호된 가상이 아닌 소멸자가 있다.
2. 가상 함수가 있다.
3. 인스턴스는 대개 힙이나 스마트 포인터로 만든다.

특성 클래스
1. typedef와 정적 함수만 있으며. 상태 변경이 불가능하다.
2. 함수 오버로딩의 분기 조건에 많이 쓰인다.

정책 클래스
1. 특정한 클래스들에게 어떻게 구현해야 되는지 강제하기 위해서 사용 한다.(복사 할당, 생성이 안된다든지)
2. 독립적으로는 객체를 생성하지 않고, 상속을 주거나 멤버로 들어 간다.
3. 자신의 상태가 있을 수도 있고 없을 수도 있다.

예외 클래스
무슨 클래스인지 전혀 모르겠다. ...

책에서 이렇게 정리되는데, 예외 클래스는 도통 무슨 클래스인지 모르겠다. 좀 더 찾아보면 자연스럽게 알 수 있을 것 같다. 그러면 이번 항목도 굿 바이~

}

'책 정리 > C++ Coding Standards : C++ 코딩의 정석' 카테고리의 다른 글

항목 37 : 상속의 정확한 의미를 이해하자. 재사용을 위해 상속하는 것은 아니지만, 재사용은 필요하다. ( Public inheritance is substitutability. Inherit, not to reuse, but to be reused. )  (0) 2009.03.02
항목 36 : 추상 인터페이스를 활용하라. ( Prefer providing abstract interfaces. )  (0) 2009.03.02
항목 35 : 기반 클래스로 디자인되지 않은 클래스로부터의 상속을 피하라. ( Avoid inheriting from classes that were not designed to be base classes. )  (0) 2009.03.01
항목 34 : 상속성을 주의해서 사용하라. ( Prefer composition to inheritance. )  (0) 2009.02.28
항목 33 : 최소화된 클래스를 사용 하라. ( Prefer minimal classes to monolithic classes. )  (0) 2009.02.27
항목 32 : 만들고 있는 클래스가 무엇인지 확실히 하라. ( Be clear what kind of class you’re writing. )  (0) 2009.02.26
항목 31 : 함수의 인자의 처리 순서에 좌우되는 코드는 좋지 않다. ( Don’t write code that depends on the order of evaluation of function arguments. )  (0) 2009.02.26
항목 30 : &&, || 그리고 콤마의 오버로딩은 피하라. ( Avoid overloading &&, ||, or , (comma) )  (0) 2009.02.26
항목 29 : 간접적인 타입 변환을 피하기 위해 오버로딩을 활용하라. ( Consider overloading to avoid implicit type conversions. )  (0) 2009.02.25
항목 28 : ++와 --의 표준적인 형식과 접두 형식을 사용하라. ( Prefer the canonical form of ++ and --. Prefer calling the prefix forms. )  (0) 2009.02.25
항목 27 : 표준적인 형식의 산술 및 할당 연산자를 사용하라. ( Prefer the canonical forms of arithmetic and assignment operators. )  (0) 2009.02.25
posted by 농사를 짓는 게임 프로그래머 최익필

댓글을 달아 주세요