Абстракция в С++
Абстракция данных — одна из наиболее существенных и важных особенностей объектно-ориентированного программирования на C++. Абстракция означает отображение только важной информации и сокрытие деталей. Абстракция данных относится к предоставлению только необходимой информации о данных внешнему миру, сокрытию фоновых деталей или реализации.
Рассмотрим реальный пример человека за рулем автомобиля . Человек знает только, что нажатие на акселератор увеличит скорость автомобиля или нажимая на тормоз остановит автомобиль, но он не знает, как на самом деле увеличивается скорость при нажатии на акселератор, он не знает о внутреннем механизме автомобиля или реализация акселератора, тормозов и т.д. в автомобиле. Вот что такое абстракция.
Типы абстракции:
- Абстракция данных — этот тип показывает только необходимую информацию о данных и скрывает ненужные данные.
- Абстракция управления — этот тип показывает только необходимую информацию о реализации и скрывает ненужную информацию.
Абстракция с использованием классов
Мы можем реализовать абстракцию на C++, используя классы. Класс помогает нам группировать элементы данных и функции-члены, используя доступные спецификаторы доступа. Класс может решить, какой член данных будет виден внешнему миру, а какой нет.
Абстракция в файлах заголовков
Еще одним типом абстракции в C++ могут быть заголовочные файлы. Например, рассмотрим метод pow() в заголовочном файле math.h. Всякий раз, когда нам нужно вычислить степень числа, мы просто вызываем функцию pow(), присутствующую в заголовочном файле math.h, и передаем числа в качестве аргументов, не зная основного алгоритма, в соответствии с которым функция фактически вычисляет мощность чисел. .
Абстракция с использованием спецификаторов доступа
Спецификаторы доступа — это основная опора реализации абстракции в C++. Мы можем использовать спецификаторы доступа, чтобы наложить ограничения на членов класса. Например:
- К членам, объявленным в классе общедоступными , можно получить доступ из любой точки программы.
- К членам, объявленным в классе закрытыми , можно получить доступ только внутри класса. Доступ к ним запрещен из любой части кода вне класса.
Мы можем легко реализовать абстракцию, используя две вышеупомянутые функции, предоставляемые спецификаторами доступа. Скажем, члены, определяющие внутреннюю реализацию, могут быть помечены как закрытые в классе. А важная информация, которую необходимо предоставить внешнему миру, может быть помечена как общедоступная. И эти общедоступные члены могут получить доступ к закрытым членам, поскольку они находятся внутри класса.
Пример :
Вы можете видеть, что в приведенной выше программе нам не разрешен прямой доступ к переменным a и b, однако можно вызвать функцию set() для установки значений в a и b и функцию display() для отображения значений a и б.
Преимущества абстракции данных
- Помогает пользователю избежать написания низкоуровневого кода
- Предотвращает дублирование кода и увеличивает возможность повторного использования.
- Может самостоятельно изменить внутреннюю реализацию класса, не затрагивая пользователя.
- Помогает повысить безопасность приложения или программы, поскольку пользователю предоставляется только важная информация.
- Это снижает сложность, а также избыточность кода, тем самым повышая читабельность.
Эта статья предоставлена Харшем Агарвалом . Если вам нравится GeeksforGeeks и вы хотите внести свой вклад, вы также можете написать статью с помощью write.geeksforgeeks.org или отправить ее по адресу review-team@geeksforgeeks.org. Посмотрите, как ваша статья появится на главной странице GeeksforGeeks, и помогите другим гикам. Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или если вы хотите поделиться дополнительной информацией по теме, обсуждаемой выше.