Among C++ programmers, a few common myths about struct and class keywords are often repeated, including the following:
- A struct is a value type, while a class is a reference type.
- A struct contains only primitive data members and is designed for small objects.
- A struct cannot inherit from another struct or class, and it cannot be the base of a class.
- Unlike class, struct can be instantiated without using the new operator.
Ovidiu Cucu explains why all of these myths are false and concludes, “In C++ programming language, there is no difference between CLASSES defined by using struct or class keywords, except the default access to members and base classes.”