Classes and Structures
When laying out classes, we use the following physical breakdown in the source files.
[cas01] The methods are listed in this order:
public methods
protected methods
private methods
[cas02] The member variables are listed in this order:
public members (avoid these)
protected members
private members
Within those sections, prefer to keep things grouped logically — for instance, keep all of the overloaded operators together, all of the constructors together, etc.