Class definition: class { }; Data members: Attributes Can be static! (one instance/class) Function members: Methods ::( .. ) Body of function can be declared with class - or separately. With class -> inline compilation (necessary for efficiency in OO systems!) Public/private/protected (protected is public to a derived or sub-class) Constructor - implicitly invoked on declarations (and copy, call-by-value, .. complex - ugh!) can set default values "Friends" to a class - Polymorphism: Multiple functions with the same name - compiler chooses one with matching signature No discipline enforced - one class/file, etc.