The C++ class is an extension of the C-language structure. Because the only difference between a structure and a class is that structure members have public access by default and a class members have private access by default, you can use the keywords class or struct to define equivalent classes.
For example, in the following code fragment, the class X is
equivalent to the structure Y:
// In this example, class X is equivalent to struct Y
class X
{
int a; // private by default
public:
int f() { return a = 5; }; // public member function
};
struct Y
{
int f() { return a = 5; }; // public by default
private:
int a; // private data member
};
If you define a structure and then declare an object of that structure using the keyword class, the members of the object are still public by default.
An aggregate class is a class that has no user-defined
constructors, no private or protected members, no base classes,
and no virtual functions.
![]()
Example of Access for Classes
and Structures
![]()
Base Classes
Constructors
Declaring Class Objects
Initializers
Private or Protected Members
Virtual Functions