이 코딩 표준은 아래의 코딩 표준들에서 추가적으로 참고하여 수정한 스탠다드입니다.
https://docs.popekim.com/ko/coding-standards/cpp
클래스와 구조체의 이름은 파스칼 표기법을 따른다.
class PlayerManager;
struct AnimationInfo;
지역 변수 그리고 함수의 매개 변수의 이름은 카멜 표기법을 따른다.
void SomeMethod(const int someParameter)
{
int someNumber;
int id;
}
메서드 이름은 동사-목적어 쌍으로 표기한다.
a. public 메서드의 이름은 파스칼 표기법을 따른다.
public:
void DoSomething();
b. 그 외 다른 메서드의 이름은 카멜 표기법을 따른다.
private:
void doSomething();
상수 또는 #define
으로 정의된 상수의 이름은 모두 대문자로 하되 밑줄로 각 단어를 분리한다.
constexpr int SOME_CONSTANT = 1;
#define WM_USER_VERSION_FAILED WM_USER
#define WM_USER_VERSION_SUCCESS (WM_USER+1)
네임스페이스는 모두 소문자로 작성한다.
namespace abc{};
namespace ya{};
namespace ya::graphics{}; //c++17부터 사용 가능
부울(boolean)형 변수는 앞에 b
를 붙인다.
bool bFired; // 지역 변수와 public 멤버 변수의 경우
bool mbFired; // 클래스의 private 멤버 변수의 경우
인터페이스를 선언할 때는 앞에 I를 붙인다.
class ISomeInterface abstract
{
...
}
열거형을 선언할 때는 앞에 e
를 붙인다.
enum class eDirection
{
North,
South,
None
}
클래스 멤버 변수명은 앞에 m
을 붙인다.
class Employee
{
protected:
int mDepartmentID;
private:
int mAge;
}
goto
레이블 명은 모두 대문자로 하되 밑줄로 각 단어를 분리한다.
goto MY_LABEL;
// ....
MY_LABEL:
std::cout << "Magic!" << std::endl;
return 0;
값을 반환하는 함수의 이름은 무엇을 반환하는지 알 수 있게 짓는다.
uint32_t GetAge() const;
단순히 반복문에 사용되는 변수가 아닌 경우엔 i
, e
같은 변수명 대신 index
, employee
처럼 변수에 저장되는 데이터를 한 눈에 알아볼 수 있는 변수명을 사용한다.
뒤에 추가적인 단어가 오지 않는 경우 줄임말은 모두 대문자로 표기한다. 특정 단어(전문용어) 를 제외한 히먄 이름을 길게 써주어서 다른사람이 알아볼수 있는 내용이면 좋다.
int OrderID;
int HttpCode;