Structs are similar to classes in that they represent data
structures that can contain data members and function members.
However, unlike classes, structs are value types and do not
require heap allocation. A variable of a struct type directly
contains the data of the struct, whereas a variable of a
class type contains a reference to the data, the latter known as an object.
Note: Structs are particularly useful for small data structures that
have value semantics. Complex numbers, points in a coordinate system,
or key-value pairs in a dictionary are all good examples of structs.
y to these data structures is that they have few data members,
that they do not require use of inheritance or reference semantics,
rather they can be conveniently implemented using value semantics
where assignment copies the value instead of the reference. end note