A C++ struct is exactly like a class, except that where the members of a class are by default private, the members of a struct are by default public.

Structs are useful when one class (like a List) needs to store objects with multiple members (like a Node). By declaring the struct in the private section of the class, its implementation details are kept hidden from users of the class; however because it is a struct, the members of the class have unrestricted access to its members.

A C++ struct can have constructors, destructors, methods, operators, ... just like a class.