선언 순서 (Declaration Order)¶
유사한 선언을 함께 그룹화하여 공개 부분을 더 일찍 배치합니다.
클래스 정의는 일반적으로 public: 섹션으로 시작하고, protected:, private: 섹션이 이어져야 합니다. 비어 있는 섹션은 생략하세요.
각 섹션 내에서 유사한 종류의 선언을 함께 그룹화하고 다음 순서를 선호합니다.
- 타입 및 타입 별칭( typedef , using , enum , 중첩된 구조체 및 클래스, 프렌드 타입)
- (선택적으로 구조체에만 해당) 비정적 데이터 멤버
- 정적 상수
- 팩토리 함수
- 생성자와 할당 연산자
- 소멸자
- 기타 모든 함수(정적 및 비정적 멤버 함수, 프렌드 함수)
- 기타 모든 데이터 멤버(정적 및 비정적)
클래스 정의에 큰 메소드 정의를 인라인으로 넣지 마십시오. 일반적으로 사소하거나 성능이 중요하고 매우 짧은 메서드만 인라인으로 정의할 수 있습니다. 자세한 내용은 헤더 파일에 함수 정의를 참조하세요.
이해하기 쉽게 설명하기¶
핵심: public을 먼저, 비슷한 선언끼리 묶어서¶
클래스를 읽는 사람은 보통 "이걸 어떻게 쓰지?"가 먼저 궁금합니다. 그래서 공개 인터페이스를 위에 두고, public: → protected: → private: 순으로 배치합니다. 빈 섹션은 생략하세요.
각 섹션 내 권장 순서¶
- 타입·타입 별칭 (
typedef,using,enum, 중첩 struct/class, 프렌드 타입) - (구조체에 한해, 선택적으로) 비정적 데이터 멤버
- 정적 상수
- 팩토리 함수
- 생성자와 할당 연산자
- 소멸자
- 그 외 모든 함수 (정적·비정적 멤버 함수, 프렌드 함수)
- 그 외 모든 데이터 멤버 (정적·비정적)
큰 메서드는 인라인으로 넣지 말 것¶
클래스 정의 안에 큰 메서드 본문을 인라인으로 넣지 마세요. 사소하거나 성능이 중요하고 아주 짧은 메서드만 인라인으로 둡니다(자세한 내용은 "헤더 파일에서 함수 정의하기" 참조).