Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Язык C

Инкапсуляция данных в C++

Все программы C++ состоят из следующих двух основных элементов —

Инкапсуляция — это концепция объектно-ориентированного программирования, которая связывает вместе данные и функции, которые манипулируют данными, и защищает их от внешнего вмешательства и неправильного использования. Инкапсуляция данных привела к важной ООП-концепции сокрытия данных. .

Инкапсуляция данных представляет собой механизм объединения данных и функций, которые их используют, и абстракции данных — это механизм предоставления доступа только к интерфейсам и сокрытия деталей реализации от пользователя.

C++ поддерживает свойства инкапсуляции и сокрытия данных за счет создания определяемых пользователем типов, называемых классами. . Мы уже изучили, что класс может содержать частные, защищенные и общедоступно члены. По умолчанию все элементы, определенные в классе, являются частными. Например —

class Box {
   public:
      double getVolume(void) {
         return length * breadth * height;
      }

   private:
      double length;      // Length of a box
      double breadth;     // Breadth of a box
      double height;      // Height of a box
};

Переменные длина, ширина и высота являются личными. . Это означает, что они могут быть доступны только другим членам класса Box, а не какой-либо другой части вашей программы. Это один из способов достижения инкапсуляции.

Чтобы сделать части класса общедоступными (т. е. доступными для других частей вашей программы), вы должны объявить их после public ключевое слово. Все переменные или функции, определенные после спецификатора public, доступны для всех других функций вашей программы.

Создание одного класса другом другого раскрывает детали реализации и уменьшает инкапсуляцию. В идеале следует скрыть как можно больше деталей каждого класса от всех других классов.

Пример инкапсуляции данных

Любая программа на C++, в которой вы реализуете класс с открытыми и закрытыми членами, является примером инкапсуляции и абстракции данных. Рассмотрим следующий пример —

Живая демонстрация
#include <iostream>
using namespace std;

class Adder {
   public:
      // constructor
      Adder(int i = 0) {
         total = i;
      }
      
      // interface to outside world
      void addNum(int number) {
         total += number;
      }
      
      // interface to outside world
      int getTotal() {
         return total;
      };
   
   private:
      // hidden data from outside world
      int total;
};

int main() {
   Adder a;
   
   a.addNum(10);
   a.addNum(20);
   a.addNum(30);

   cout << "Total " << a.getTotal() <<endl;
   return 0;
}

Когда приведенный выше код скомпилирован и выполнен, он дает следующий результат —

Total 60

Вышеупомянутый класс складывает числа вместе и возвращает сумму. Публичные члены addNum и получитьИтого являются интерфейсами к внешнему миру, и пользователю необходимо знать их, чтобы использовать класс. Частный член всего это то, что скрыто от внешнего мира, но необходимо для правильной работы класса.

Разработка стратегии

Большинство из нас научились делать членов класса закрытыми по умолчанию, если нам действительно не нужно раскрывать их. Это просто хорошая инкапсуляция .

Чаще всего это применяется к членам данных, но в равной степени относится ко всем членам, включая виртуальные функции.


Язык C

  1. Типы данных С++
  2. Операторы С++
  3. Классы и объекты С++
  4. Шаблоны классов С++
  5. Инкапсуляция Java
  6. Тип данных Char C++ с примерами
  7. Java — инкапсуляция
  8. Java — Структуры данных
  9. Классы хранения в C++
  10. Структуры данных С++