In C++ the structure and class are basically same. But there are some minor differences. These differences are like below.
The class members are private by default, but members of structures are public. Let us see these two codes to see the differences.
Example
#include <iostream> using namespace std; class my_class { int x = 10; }; int main() { my_class my_ob; cout << my_ob.x; }
Output
This program will not be compiled. It will generate compile time error for the private data member.
Example
#include <iostream> using namespace std; struct my_struct { int x = 10; }; int main() { my_struct my_ob; cout << my_ob.x; }
Output
10
When we derive a structure from a class or structure, the default access specifier of that base class is public, but when we deriving a class the default access specifier is private.
Example
#include <iostream> using namespace std; class my_base_class { public: int x = 10; }; class my_derived_class : my_base_class { }; int main() { my_derived_class d; cout << d.x; }
Output
This program will not be compiled. It will generate compile time error that the variable x of the base class is inaccessible
Example
#include <iostream> using namespace std; class my_base_class { public: int x = 10; }; struct my_derived_struct : my_base_class { }; int main() { my_derived_struct d; cout << d.x; }
Output
10