C/C++ Programming Style Guidelines
probability of errors being introduced when the block is expanded later in the code's
life.
data members and type definitions first. Declare private or protected data members or
type definitions used in function member initialization lists or inline implementations
next. Declare all public member functions next, starting with the constructors and
destructor. Declare all remaining private or protected data members and type definitions
next. Declare all private or protected function members next. Declare all friends last.
functions spanning multiple lines, use a pure-block style with four-space indentation.
In general, avoid putting complex function implementations