Programming Reference:Cpp Coding Style
Appearance
Coding Style
Line Formatting
- No tab characters (configure your editor to insert spaces instead)
- Indentation in steps of 2
- Opening braces have their own line, aligned with the previous line; corresponding closing braces are placed on their own lines, at the same character position as the opening brace.
- For function definitions, return types appear on their own line, such that the function name is first in its line.
Naming
- ALL_UPPERCASE_NAMES are reserved for preprocessor macros.
- Use CamelCase (uppercase letters inside words) to indicate word boundaries.
- Class names and namespaces begin with uppercase letters: MyNameSpace, TheClass.
- Local variables and function arguments begin with lowercase letters.
- Accessor functions use Set/Get or directly the name of the property. Setter functions should return a non-const reference to the data object itself rather than void.
Name prefixes
Prefixes should carry information about the scope and usage of a variable but not its type.
- m for class data members
- s for static class members and static variables
- g for global variables
- c for constants
- p for pointers
- fp for function pointers
- in for function input arguments
- out for function output arguments
- io for function arguments used for input and output
Pointers, References, Stack and Heap, Memory allocation, Control flow
- Always use the narrowest possible scope for a name to avoid side effects.
- Always initialize variables (at declaration resp. constructor).
- Allocate from the stack rather than the heap unless there is a good reason to use the new operator. This avoids memory leaks.
- Use references rather than pointers wherever possible.
- Use STL containers rather than allocating arrays with new[]. This eliminates a number of possible errors (initialization, allocation, deallocation).
- Avoid goto, break outside switch-case blocks, and multiple return statements.
Example Function
void
MyClass::MyFunction( const int inMyInput, int& outMyOutput )
{
outMyOutput = 10;
for( int i = 0; i < inMyInput; ++i )
{
int k = 4;
while( --k > 0 )
outMyOutput -= k;
}
}