클래스와 구조체의 이름은 파스칼 표기법을 따른다.
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;
클래스 멤버 변수에 접근할 때는 항상 setter와 getter를 사용한다.
틀린 방식:
class Employee
{
public:
string Name;
}
올바른 방식:
class Employee
{
public:
const string& GetName() const;
void SetName(const string& name);
private:
string mName;
}
구조체는 오직 public 멤버 변수만 가질 수 있다. 구조체의 멤버 변수명은 파스칼 표기법을 따르며, 구조체 안에서 함수는 사용하지 않는다.
struct MeshData
{
int32_t VertexCount;
}
외부 헤더 파일을 인클루드 할 때는 #include<> 을 사용. 자체적으로 만든 헤더 파일을 인클루드 할 때는 #include "" 를 사용한다.
외부 헤더 파일을 먼저 인클루드한 뒤, 내부 헤더 파일을 인클루드 한다. 인클루드를 할 때, 가능하다면 알파벳 순서를 따른다.
// 기본 window 라이브러리 헤더
#include <vector>
#include <unordered_map>
// 임으로 추가된 라이브러리 헤더
#inlucde <DirectXTex.h>
// 내 프로젝트 파일안의 헤더
#include "AnimationInfo.h"
모든 헤더 파일 첫 번째 줄에 #pragma once를 기재한다.
지역 변수를 선언할 때는 그 지역 변수를 사용하는 코드와 동일한 줄에 선언하는 것을 원칙으로 한다.