В чем разница между частными и защищенными членами классов С++

V Cem Raznica Mezdu Castnymi I Zasisennymi Clenami Klassov S



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

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

Спецификатор частного доступа

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







#include <иопоток>
с использованием пространство имен станд. ;

сорт игрок {

частный :
имя строки ;
инт возраст ;

публичный :
пустота получитьплеер ( )
{
cout << 'Введите имя: ' ;
принимать пищу >> имя ;
cout << 'Введите возраст:' ;
принимать пищу >> возраст ;
}
пустота показатьплеер ( )
{
cout << 'Имя: ' << имя << конец ;
cout << 'Возраст: ' << возраст << конец ;
}
} ;

инт основной ( )
{
игрок пл ;
пл. получитьплеер ( ) ;
пл. показатьплеер ( ) ;

возвращаться 0 ;
}

В приведенном выше коде мы используем общедоступные методы-члены. получитьигрок() и показатьплеер() чтобы получить доступ к двум частный членов имя и возраст . получитьигрок() функция получает ввод от пользователей и отображает его на экране через показатьплеер() функция.



Выход







Спецификатор защищенного доступа

Защищенные участники Доступ к классу могут получить как производные классы, так и функции-члены самого класса. Защищенные участники используются для обеспечения уровня доступа к производным классам без раскрытия деталей реализации внешнему миру. Защищенные члены объявляются с использованием ключевого слова ‘ защищенный ' и двоеточие (:) характер. Защищенные участники позволяют расширять и изменять класс без ущерба для его целостности. Производный класс может использовать защищенные члены для уточнения или настройки поведения базового класса.

Вот пример класса с защищенные члены :



#include <иопоток>
использование пространства имен std;

классный игрок {
частный:
имя строки;
инт возраст;

защищено:
инт голы;

публичный:
аннулировать getPlayer ( )
{
cout <> имя;
cout <> возраст;
}
пустота шоуплеер ( )
{
cout << 'Имя: ' << имя << конец;
cout << 'Возраст: ' << возраст << конец;
}
} ;

класс player1: публичный игрок {

частный:
струнная страна;

публичный:
пустота set_goals ( инт г )
{
голы = г;
}
аннулировать getPlayer1 ( )
{
получитьплеер ( ) ;
cout <> страна;
}
аннулировать шоуPlayer1 ( )
{
cout << 'цели: ' << цели << конец;
показатьплеер ( ) ;
cout << 'Страна: ' << страна << конец;
}
} ;

внутренний основной ( )
{
игрок1 пл;
pl.set_goals ( 101 ) ;
pl.getPlayer1 ( ) ;
pl.showPlayer1 ( ) ;

возвращаться 0 ;
}

игрок класс состоит из двух частные члены , имя и возраст , один защищенный член, цели , и частный члены используются внутри публичный функции-члены, получитьигрок() и показатьплеер() . Есть два класса, игрок и игрок1 , оба из которых являются базовыми классами. Один частный член, страна , и три публичный методы-члены составляют игрок1 сорт. Назначать цели() используется для изменения защищенного члена цели' ценить. получитьИгрок1() называет получитьигрок() членская функция игрок class при дополнительном получении входных данных для страны. Подобно этому, показатьИгрок1() называет показатьплеер() функция-член и печатает цели и страна ценности.

Выход

Разница между частными и защищенными членами классов C++

Здесь перечислены некоторые ключевые различия между Частный и Защищено члены классов С++.

1: Объем и функциональность

При рассмотрении использования спецификаторов доступа крайне важно тщательно продумать объем и функциональность программы. А спецификатор частного доступа обеспечивает высочайший уровень безопасности и предотвращает непреднамеренный доступ к переменным и методам. С другой стороны, спецификатор защищенного доступа предлагает более широкий диапазон доступности и гибкости, что важно при планировании наследования производных классов от базового класса.

2: Уровень доступа

Основное различие между частный и защищенные члены уровень доступа, который они обеспечивают. Защищено члены могут быть доступны как производным классам класса, так и функциям-членам, но частный члены могут быть получены только функциями-членами класса.

3: Инкапсуляция класса

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

Последние мысли

Частный и защищенные члены являются двумя основными уровнями доступа в классе C++. частный Спецификатор доступа делает члены класса недоступными для всех внешних пользователей и используется для хранения информации. частный внутри класса. Напротив, защищенный Спецификатор доступа разрешает доступ к членам класса только производным классам, используется для обеспечения функциональности базового класса и разрешает модификацию без изменения поведения базового класса. Уровень доступа членов класса играет решающую роль в поддержании инкапсуляции класса и предоставлении уровня доступа пользователям класса.