Structure diagrams

Distinguishing types and instances:

Typename  type-like elements are not underlined
Object : Typename  instance-like elements are underlined

Class attributes:

visibility name : type = initial_value { property, property=value }

Visibility:

+  public
protected
-  private

Abstract classes / pure virtual functions:

name in italics

Class-scope (i.e. "static") attributes/operations:

name underlined

Pictorial elements:

Note

or Package – contains diagram elements and/or other packages

Class

or Interface

Template class

Association

Composition (A contains B: destroying A also destroys B)

Aggregation (A has B)

Generalisation (B is derived from A)

{constraint text} or or Constraint