Encapsulation in C++

Encapsulation is a process of combining data members and functions in a single unit called class. This is to prevent the access to the data directly, the access to them is provided through the functions of the class. It is one of the popular feature of Object Oriented Programming(OOPs) that helps in data hiding.

How Encapsulation is achieved in a class

  1. Make all the data members private.
  2. Create public setter and getter functions for each data member in such a way that the set function set the value of data member and get function get the value of data member.

Encapsulation Example in C++

Here we have two data members num and ch, we have declared them as private so that they are not accessible outside the class, this way we are hiding the data. The only way to get and set the values of these data members is through the public getter and setter functions.

using namespace std;
class ExampleEncap{
   /* Since we have marked these data members private,
    * any entity outside this class cannot access these
    * data members directly, they have to use getter and
    * setter functions.
   int num;
   char ch;
   /* Getter functions to get the value of data members.
    * Since these functions are public, they can be accessed
    * outside the class, thus provide the access to data members
    * through them
   int getNum() const {
      return num;
   char getCh() const {
      return ch;
   /* Setter functions, they are called for assigning the values
    * to the private data members.
   void setNum(int num) {
      this->num = num;
   void setCh(char ch) {
      this->ch = ch;
int main(){
   ExampleEncap obj;
   return 0;



Advantages of encapsulation

The main advantage of using encapsulation is the security of the data. Benefits of encapsulation include:

  • Encapsulation protects an object from unwanted access by clients.
  • Encapsulation allows access to a level without revealing the complex details below that level.
  • It reduces human errors.
  • Simplifies the maintenance of the application
  • Makes the application easier to understand.

Shaiv Roy

Hy Myself shaiv roy, I am a passionate blogger and love to share ideas among people, I am having good experience with laravel, vue js, react, flutter and doing website and app development work from last 7 years.

Related Articles

One Comment

  1. Hi there, thank you for sharing such a great piece of informative content with us. It is a really amazing post it also helps me a lot.

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button