머리말

참조문서

이 코딩 표준은 아래의 코딩 표준들에서 추가적으로 참고하여 수정한 스탠다드입니다.

https://docs.popekim.com/ko/coding-standards/cpp

I. 메인 코딩 표준

  1. 클래스와 구조체의 이름은 파스칼 표기법을 따른다.

     class PlayerManager;
     struct AnimationInfo;
    
    
  2. 지역 변수 그리고 함수의 매개 변수의 이름은 카멜 표기법을 따른다.

     void SomeMethod(const int someParameter)
     {
         int someNumber;
         int id;
     }
    
    
  3. 메서드 이름은 동사-목적어 쌍으로 표기한다.

    a. public 메서드의 이름은 파스칼 표기법을 따른다.

     public:
         void DoSomething();
    
    

    b. 그 외 다른 메서드의 이름은 카멜 표기법을 따른다.

     private:
         void doSomething();
    
    
  4. 상수 또는 #define 으로 정의된 상수의 이름은 모두 대문자로 하되 밑줄로 각 단어를 분리한다.

     constexpr int SOME_CONSTANT = 1;
    
     #define WM_USER_VERSION_FAILED WM_USER
     #define WM_USER_VERSION_SUCCESS (WM_USER+1)
    
  5. 네임스페이스는 모두 소문자로 작성한다.

     namespace abc{};
     namespace ya{};
     namespace ya::graphics{}; //c++17부터 사용 가능
    
  6. 부울(boolean)형 변수는 앞에 b를 붙인다.

     bool bFired;  // 지역 변수와 public 멤버 변수의 경우
     bool mbFired; // 클래스의 private 멤버 변수의 경우
    
  7. 인터페이스를 선언할 때는 앞에 I를 붙인다.

     class ISomeInterface abstract
     {
    	 ...
     }
    
    
  8. 열거형을 선언할 때는 앞에 e를 붙인다.

     enum class eDirection
     {
         North,
         South,
         None
     }
    
    
  9. 클래스 멤버 변수명은 앞에 m을 붙인다.

     class Employee
     {
     protected:
         int mDepartmentID;
     private:
         int mAge;
     }
    
    
  10. goto 레이블 명은 모두 대문자로 하되 밑줄로 각 단어를 분리한다.

    goto MY_LABEL;
    
    // ....
    
    MY_LABEL:
        std::cout << "Magic!" << std::endl;
        return 0;
    
    
  11. 값을 반환하는 함수의 이름은 무엇을 반환하는지 알 수 있게 짓는다.

    uint32_t GetAge() const;
    
    
  12. 단순히 반복문에 사용되는 변수가 아닌 경우엔 ie 같은 변수명 대신 indexemployee 처럼 변수에 저장되는 데이터를 한 눈에 알아볼 수 있는 변수명을 사용한다.

  13. 뒤에 추가적인 단어가 오지 않는 경우 줄임말은 모두 대문자로 표기한다. 특정 단어(전문용어) 를 제외한 히먄 이름을 길게 써주어서 다른사람이 알아볼수 있는 내용이면 좋다.

    int OrderID;
    int HttpCode;