Structure vs class in C++


In C++ the structure and class are basically the 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 Code

 Live Demo

#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 Code

 Live Demo

#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 Code

 Live Demo

#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 Code

 Live Demo

#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

Updated on: 30-Jul-2019

136 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements