1. Structures allow grouping of different data types under a single name and are user-defined types in C++. They contain data members and may have functions associated with them. 2. Unions are similar to structures but can hold only one data member at a time and share the same memory location for all members. 3. Classes are like structures but can contain data members and functions together. They are the basis for object-oriented programming in C++.