Difference between revisions of "Documentation/4.1/Developers/Style Guide/Cpp"

From Slicer Wiki
Jump to: navigation, search
m
Line 1: Line 1:
__TOC__
 
 
{{ambox|text=
 
 
Use common sense and BE CONSISTENT.
 
Use common sense and BE CONSISTENT.
  
Line 13: Line 10:
  
 
<i>Source: [https://google-styleguide.googlecode.com/svn/trunk/cppguide.xml Google C++ Style Guide]</i>
 
<i>Source: [https://google-styleguide.googlecode.com/svn/trunk/cppguide.xml Google C++ Style Guide]</i>
}}
+
 
 +
__TOC__
  
 
= Indentation =
 
= Indentation =

Revision as of 04:31, 22 June 2012

Home < Documentation < 4.1 < Developers < Style Guide < Cpp

Use common sense and BE CONSISTENT.

If you are editing code, take a few minutes to look at the code around you and determine its style. If they use spaces around their if clauses, you should, too. If their comments have little boxes of stars around them, make your comments have little boxes of stars around them too.

The point of having style guidelines is to have a common vocabulary of coding so people can concentrate on what you are saying, rather than on how you are saying it. We present global style rules here so people know the vocabulary. But local style is also important. If code you add to a file looks drastically different from the existing code around it, the discontinuity throws readers out of their rhythm when they go to read it. Try to avoid this.

OK, enough writing about writing code; the code itself is much more interesting. Have fun!

Source: Google C++ Style Guide

Indentation

Configure your text editor to do VTK style indentation:

Naming

  • Local variable should start with a lower case.
    • For example:
void vtkSlicerSliceLogic::SetForegroundLayer(vtkSlicerSliceLayerLogic *ForegroundLayer) // wrong!

should be

void vtkSlicerSliceLogic::SetForegroundLayer(vtkSlicerSliceLayerLogic *foregroundLayer)
  • Member variable should start with a capital letter, and in implementation should be used in conjunction with 'this->' convention
    • For example
class Node {
  Object &Foo();
  Object Bla;
};
Object& Node::Foo()
{
  return this->Bla;
}


References

Tools