Введение в инкапсуляцию в C ++

Инкапсуляция означает процесс упаковки данных и функций в одну капсулу. Он также защищает данные из других классов, ограничивая доступ. В основном это скрывает данные. Если мы возьмем реальный пример колледжа, у нас будут разные факультеты, такие как физика, химия, биология и т. Д. Может возникнуть ситуация, когда начальнику кафедры физики нужна какая-то информация из отдела биологии, но он не может получить доступ к данным из этого отдела напрямую. Сначала он должен связаться с начальником отдела биологии, а затем попросить его предоставить данные. Вот как работает инкапсуляция.

Как использовать инкапсуляцию в C ++?

Чтобы достичь этого, мы должны выполнить следующие шаги:

  1. Во-первых, нам нужно сделать все члены данных приватными.
  2. Затем должны быть созданы публичные функции получения и установки для каждого элемента данных таким образом, чтобы функция get получала значение элемента данных, а функция set - значение элемента данных.

Инкапсуляция и сокрытие данных могут быть достигнуты в C ++ с помощью пользовательских типов, называемых классами. Спецификаторы доступа в классах могут быть частными, защищенными или общедоступными. По умолчанию все элементы в классе являются частными. По необходимости мы можем изменить уровни доступа. Три уровня спецификаторов доступа, как показано ниже:

  • Частный : члены одного класса могут получить доступ к данным.
  • Public : все классы могут получить доступ к данным.
  • Защищено : доступ к данным разрешен членам одного и того же класса или производных классов.

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

Чтобы объяснить это, мы посмотрим на класс ниже.

Здесь физика, химия и биология имеют тип double и являются частными переменными. GetTotalMarks () - это открытый метод, используемый для получения общих оценок всех трех субъектов. Мы не можем получить доступ к каждому предмету в другом классе из-за его уровня защиты. Но мы можем получить доступ к методу и его можно использовать для получения итоговых оценок путем прохождения отдельных предметных оценок. Мы можем установить отметки каждого предмета, используя метод setter, который мы рассмотрим в следующем примере.

Пример инкапсуляции в C ++ с шагами

Ниже приведена пошаговая инструкция для реализации инкапсуляции.

1) Давайте рассмотрим сценарий, в котором нам нужно рассчитать итоговые оценки студента, рассчитав сумму по трем предметам: физике, химии и биологии. Но условие таково, что другой класс

2) Сначала включите iostream для функций ввода и вывода.

3) Используйте пространство имен std

4) Напишите класс для хранения всех данных и функций. Пусть это будет студент.

5) Объявите частные переменные физики, химии и биологии. Это говорит о том, что мы не можем получить доступ к переменным вне этого класса Student. Но мы можем получить к ним доступ локально и при необходимости изменить значение. Чтобы изменить значение, мы можем написать общедоступную функцию установки и получить доступ к ней в другом классе.

6) Напишите функцию с именем SetMarks, которая будет использоваться для установки значений приватных переменных. Так как мы не можем получить доступ к физическим, химическим и биологическим свойствам частных переменных вне класса ученика, нам нужна эта функция, чтобы установить эти значения из внешнего класса. Этот метод будет общедоступным, так как нам нужен доступ к нему вне класса. Нам нужны три параметра, чтобы получить значения для каждого предмета. Внутри функции мы установим значение приватных переменных.

7) Нам нужен еще один метод, чтобы получить итоговые оценки по всем трем предметам путем добавления оценок. Этот метод также общедоступен. Просто вызовите этот метод за пределами класса, и мы получим сумму оценок трех предметов.

8) Теперь вне этого класса мы напишем основную функцию.

9) Сначала внутри функции main мы получим доступ к ученику класса и создадим объект класса.

10) На следующем шаге мы вызовем функцию, чтобы установить метки для трех предметов. Здесь мы передадим метки в качестве параметров функции. Ниже приведен фрагмент кода для достижения этой цели.

11) Далее мы получим итоговые оценки и напечатаем значение. И вернуть 0 в конце.

12) Можете ли вы угадать вывод кода? Вы правы. Результат показан ниже.

Выход: 240

13) Теперь мы проанализируем, как мы получили этот вывод. Поскольку мы не могли получить доступ к закрытым переменным, мы написали функцию Setter, которая принимает значения из другого класса и модифицирует переменные. Функция Getter выбирает переменные, добавляет их и отправляет итоговые оценки ученика. Каждый раз, когда мы передаем три разных значения в функцию setter, мы видим, что итоговые оценки, которые мы получаем, также будут соответственно меняться.

14) Исходя из этого, мы можем сказать, что инкапсуляция помогает нам защитить некоторые необходимые данные, а также функции set и getter используются для изменения их значений. Делая это. Защита также достигается без ущерба для нашей цели.

Вывод

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

  • Классы после инкапсуляции повышают читаемость и снижают сложность.
  • Это помогает в защите данных.
  • Конфиденциальность данных в классе может быть изменена без изменения всего кода с помощью модификаторов доступа.

Рекомендуемые статьи

Это руководство по инкапсуляции в C ++. Здесь мы обсудим, как использовать инкапсуляцию в C ++ вместе с примером инкапсуляции в C ++ с помощью шагов. Вы также можете посмотреть следующие статьи, чтобы узнать больше -

  1. Алгоритм шифрования
  2. Шифрование симметричного ключа
  3. Что такое шифрование?
  4. Введение в инкапсуляцию в C
  5. Инкапсуляция в JavaScript (Преимущества)
  6. Модификаторы доступа в PHP