In C, structures and classes are basically the same. But there are some subtle differences. These differences are shown below.
By default, class members are private, but structure members are public. Let's take a look at these two codes and see what's the difference.
#include <iostream> using namespace std; class my_class { int x = 10; }; int main() { my_class my_ob; cout << my_ob.x; }
This program will not be compiled. It will generate compile time error for the private data member.
#include <iostream> using namespace std; struct my_struct { int x = 10; }; int main() { my_struct my_ob; cout << my_ob.x; }
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.
#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; }
This program will not be compiled. It will generate compile time error that the variable x of the base class is inaccessible
#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; }
10
The above is the detailed content of The difference between C/C++ structures and classes. For more information, please follow other related articles on the PHP Chinese website!