코딩 관습은 프로그램의 가독성과 유지보수를 위해 매우 중요한 요소이다. 또한 프로그래머의 생산성을 크게 향상시킨다. 이는 좋은 코딩 훈련을 위해 필요하다. 아래의 내용은 class 정의에 있어 제안된 것이다.
모든 public 변수들은 mFooVar과 같이 m 으로 시작해야 한다. m 은 member를 의미한다.
모든 protected 변수들은 mtFooVar 와 같이 mt 로 시작해야하고, 메쏘드는 tFooNum() 와 같이 t로 시작해야 한다. t 는 protected를 의미한다.
모든 private 변수들은 mvFooVar와 같이 mv 로 시작해야하고, 메쏘드들은 vFooLone() 와 같이 v로 시작해야 한다. v 는 private 을 의미한다.
모든 public, protected, private 변수이름들은 m 다음에는 mFooVar 의 F같이 대문자로 시작해야한다.
모든 포인터 변수들은 다음과 같이 p로 시작해야 한다.
Public 변수 mpFooVar 과 메쏘드 FooNum()
Protected 변수 mtpFooVar 와 메쏘드 tFooNum()
Private 변수 mvpFooVar 와 메쏘드 vFooNum()
아래에 주어진 예제 코드에서 t 는 protected를, v 는 private를, m 는 member-variable 를, p 는 pointer를 의미한다.
class SomeFunMuncho { public: int mTempZimboniMacho; // OOP에서는 오직 임시 변수들만 public이어야 한다. float *mpTempArrayNumbers; int HandleError(); float getBonyBox(); // 변수에 접근하기 위한 함수 float setBonyBox(); // 변수에 접근하기 위한 함수 protected: float mtBonyBox; int *mtpBonyHands; char *tHandsFull(); int tGetNumbers(); private: float mvJustDoIt; char mvFirstName[30]; int *mvpTotalValue; char *vSubmitBars(); int vGetNumbers(); }; |
다음의 C++ 코딩 표준 URL들을 방문해보아라.
C++ FAQ Lite - Coding standards http://www.parashift.com/c++-faq-lite/coding-standards.html
Rice university coding standard http://www.cs.rice.edu/~dwallach/CPlusPlusStyle.html
Identifiers to avoid in C++ Programs http://oakroadsystems.com/tech/cppredef.htm
Coding standards from Possibility http://www.possibility.com/Cpp/CppCodingStandard.html and mirror site
Coding standards for Java and C++ from Ambysoft http://www.ambysoft.com/JavaCodingStandards.html
Rules and recommendations http://www.cs.umd.edu/users/cml/cstyle/
Indent and annotate http://www.cs.umd.edu/users/cml/cstyle/indhill-annot.html
Elemental rules http://www.cs.umd.edu/users/cml/cstyle/Ellemtel-rules.html
C++ style doc http://www.cs.umd.edu/users/cml/cstyle/Wildfire-C++Style.html
C++ Coding Standards by Brett Scolcum http://www.skypoint.com/~slocum/prog/cppstds.html
Logikos C++ Coding Standards http://www.logikos.com/standards/cpp_std.html
NRad C++ coding standards http://cadswes.colorado.edu/~billo/standards/nrad
BEJUG C++ coding standards http://www.meurrens.org/ip-Links/java/joodcs/ToddHoff.html
Arctic Labs coding standards http://www.arcticlabs.com/codingstandards
See also
For rapid navigation with ctags Vim color text editor
To improve productivity see C++ Beautifier HOWTO