This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
dev:dg_code_style_guide [2017/02/17 19:55] – [Switch/case] deva | dev:dg_code_style_guide [2024/07/26 10:46] (current) – [Classes] deva | ||
---|---|---|---|
Line 3: | Line 3: | ||
| **//Code is written once by one person but read many times by many people.//** | | | **//Code is written once by one person but read many times by many people.//** | | ||
- | What this essentially boils down to is; don't make syntactic short-cuts that makes it easier to write the code if it makes it harder to read the the code. | + | What this essentially boils down to is; don't make syntactic short-cuts that makes it easier to write the code if it makes it harder to read the code. |
Always write comments to logical blocks in the code that explains for example what a for loop does or how a couple of function calls interact. | Always write comments to logical blocks in the code that explains for example what a for loop does or how a couple of function calls interact. | ||
Line 15: | Line 15: | ||
=====Curly Braces===== | =====Curly Braces===== | ||
Use [[https:// | Use [[https:// | ||
- | This basically boils down to 'curly braces always on a new line' | + | This basically boils down to 'curly braces always on a new line': |
<code c++> | <code c++> | ||
namespace Foo | namespace Foo | ||
Line 42: | Line 42: | ||
{ | { | ||
then_that(); | then_that(); | ||
+ | } | ||
+ | else | ||
+ | { | ||
+ | else_this(); | ||
} | } | ||
</ | </ | ||
Line 85: | Line 89: | ||
{ | { | ||
public: | public: | ||
- | MyClass(int | + | MyClass(int |
protected: | protected: | ||
Line 93: | Line 97: | ||
<code c++> | <code c++> | ||
- | MyClass:: | + | MyClass:: |
- | : someMember(someMember) | + | : some_member(some_member) |
- | , SomeBaseClass(someMember) | + | , SomeBaseClass(some_member) |
- | , SomeOtherBaseClass(someMember) | + | , SomeOtherBaseClass(some_member) |
{ | { | ||
// ... | // ... | ||
Line 118: | Line 122: | ||
}; | }; | ||
</ | </ | ||
+ | |||
+ | Member variables should always be initialized in the header file, and should use the curly-brace notation: | ||
+ | <code c++> | ||
+ | class MyClass | ||
+ | { | ||
+ | private: | ||
+ | int some_member_variable{}; | ||
+ | int start_position{42}; | ||
+ | static constexpr int step_size{2}; | ||
+ | std:: | ||
+ | }; | ||
+ | </ | ||
+ | |||
=====Pointers and References===== | =====Pointers and References===== | ||
Pointer stars and reference ampersands must be placed to the left without space after the type: | Pointer stars and reference ampersands must be placed to the left without space after the type: | ||
Line 128: | Line 145: | ||
Use [[http:// | Use [[http:// | ||
- | Tab-width is irrelevant as it is up to the editor | + | < |
+ | --->// | ||
+ | ---> | ||
+ | ---> | ||
+ | ---> | ||
+ | ---> | ||
+ | ---> | ||
+ | </ | ||
+ | |||
+ | With smart-tabs the tab-width | ||
+ | aligned which makes it up to the individual developer | ||
+ | tab-width of his or her taste. | ||
Download [[https:// | Download [[https:// | ||
Line 200: | Line 228: | ||
The following naming schemes apply:\\ | The following naming schemes apply:\\ | ||
- | // | + | // |
<code c++> | <code c++> | ||
class UpperCaseCamelCase | class UpperCaseCamelCase | ||
Line 207: | Line 235: | ||
</ | </ | ||
- | // | + | // |
<code c++> | <code c++> | ||
void lowerCaseCamelCase() | void lowerCaseCamelCase() | ||
</ | </ | ||
- | // | + | // |
<code c++> | <code c++> | ||
int lower_case_snake_case = 42; | int lower_case_snake_case = 42; | ||
Line 219: | Line 247: | ||
// | // | ||
<code c++> | <code c++> | ||
- | # | + | # |
</ | </ | ||
Line 248: | Line 276: | ||
//! This is a method. | //! This is a method. | ||
//! \param foo The foo argument is an integer. | //! \param foo The foo argument is an integer. | ||
- | //! \param bar The bar argument is a boolan. | + | //! \param bar The bar argument is a boolean. |
//! \return This method returns a float. | //! \return This method returns a float. | ||
float method(int foo, bool bar); | float method(int foo, bool bar); |