This document discusses C++ structs (records) which allow grouping of related data of different types. It covers declaring struct variables, accessing struct members, passing structs by value and reference, arrays of structs, hierarchical structs containing other structs, and unions which can hold only one member at a time. Testing and debugging tips are provided such as ensuring the full member selector is used and that indexes are placed correctly when using arrays within structs.