Как управлять модификаторами доступа в C++: понимание видимости членов

Kak Upravlat Modifikatorami Dostupa V C Ponimanie Vidimosti Clenov



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

Модификаторы доступа в C++

Модификаторы доступа используются для управления доступностью и видимостью данных класса. Они устанавливают некоторые ограничения для членов данных, чтобы внешние функции не могли получить к ним доступ. Модификаторы доступа в C++ бывают трех типов:

Модификатор публичного доступа в C++

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







Пример

Модификатор открытого доступа используется для объявления класса, а доступ к его членам данных осуществляют другие функции в программе.



#include

#include

#include

использование пространства имен std ;
класс Треугольник
{
общественный :
плавать Икс , и , С ;
пустота вход ( )
{
расчет << «Введите сторону x треугольника:-» ;
принимать пищу >> Икс ;
расчет << «Введите сторону y треугольника:-» ;
принимать пищу >> и ;
расчет << «Введите сторону z треугольника:-» ;
принимать пищу >> С ;
}
пустота Область ( )
{
плавать с '=' ( Икс + и + С ) / 2 ;
плавать область '=' кврт ( с * ( с - Икс ) * ( с - и ) * ( с - С ) ) ;
расчет << ' \п Площадь треугольника =' << область ;
}
} ;
интервал основной ( )
{
Треугольник т1 ;
т1. вход ( ) ;
т1. Область ( ) ;
возвращаться 0 ;
}

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







Три стороны треугольника вводятся пользователем, а площадь треугольника рассчитывается путем доступа к значениям вне класса с использованием стандартной формулы 13,4164.

Модификатор частного доступа в C++

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



Пример

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

#include

#include

#include

использование пространства имен std ;
класс Треугольник
{

частный :
плавать Икс , и , С ;
общественный :
пустота вход ( )

{

расчет << «Введите сторону x треугольника:-» ;
принимать пищу >> Икс ;
расчет << «Введите сторону y треугольника:-» ;
принимать пищу >> и ;
расчет << «Введите сторону z треугольника:-» ;
принимать пищу >> С ;

}
пустота Область ( )
{

плавать с '=' ( Икс + и + С ) / 2 ;
плавать область '=' кврт ( с * ( с - Икс ) * ( с - и ) * ( с - С ) ) ;
расчет << ' \п Площадь треугольника =' << область ;

}

} ;

интервал основной ( )
{
Треугольник т1 ;
т1. вход ( ) ;
т1. Область ( ) ;
возвращаться 0 ;

}

В main() объект t1 не может напрямую обращаться к переменной частного класса float x, y и z, поэтому манипулировать им можно только косвенно через публичную функцию input(), поскольку эта функция получает значения x, y и z.

Площадь треугольника получается путем доступа к частному классу путем манипулирования им с использованием открытого класса. Если значения x, y и z не будут объявлены в публичном классе, то они не будут доступны в main() для вычислений.

Модификатор защищенного доступа в C++

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

Пример

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

#include

#include

#include

использование пространства имен std ;
//родительский класс
класс Треугольник
{

защищенный :
плавать Икс , и , С ;
} ;
//дочерний класс
класс TriangleChild : общественный треугольник {
общественный :
пустота вход ( )

{

расчет << «Введите сторону x треугольника:-» ;
принимать пищу >> Икс ;
расчет << «Введите сторону y треугольника:-» ;
принимать пищу >> и ;
расчет << «Введите сторону z треугольника:-» ;
принимать пищу >> С ;

}
пустота Область ( )
{
плавать с '=' ( Икс + и + С ) / 2 ;
плавать область '=' кврт ( с * ( с - Икс ) * ( с - и ) * ( с - С ) ) ;
расчет << ' \п Площадь треугольника =' << область ;

}
} ;

интервал основной ( )

{
ТреугольникРебенок ;
Ребенок. вход ( ) ;
Ребенок. Область ( ) ;
возвращаться 0 ;

}

TriangleChild — это унаследованный класс, производный от класса Triangle. Переменные x, y и z объявлены в Triangle с ключевым словом protected. Это означает, что эти переменные защищены, но к ним может получить доступ TriangleChild, поскольку Triangle является его родительским классом. Значения переменных были присвоены в TriangleChild, хотя они объявлены в классе Triangle.

Доступ к переменным осуществляется через дочерний класс, а затем вычисляется площадь треугольника.

Заключение

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