Как да контролирате модификаторите за достъп в C++: Разбиране на видимостта на членовете

Kak Da Kontrolirate Modifikatorite Za Dost P V C Razbirane Na Vidimostta Na Clenovete



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

Модификатори за достъп в C++

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

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

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







Пример

Модификаторът за публичен достъп се използва за деклариране на клас и неговите членове с данни са достъпни от другите функции в рамките на програмата.



#include

#include

#include

използване на пространство от имена std ;
клас Триъгълник
{
публичен :
плавам х , и , с ;
невалиден вход ( )
{
cout << „Въведете страната x на триъгълник:-“ ;
храня се >> х ;
cout << „Въведете страната y на триъгълник:-“ ;
храня се >> и ;
cout << „Въведете страната z на триъгълник:-“ ;
храня се >> с ;
}
невалиден ■ площ ( )
{
плавам с = ( х + и + с ) / 2 ;
плавам ■ площ = sqrt ( с * ( с - х ) * ( с - и ) * ( с - с ) ) ;
cout << ' Площ на триъгълник =' << ■ площ ;
}
} ;
вътр основен ( )
{
Триъгълник t1 ;
t1. вход ( ) ;
t1. ■ площ ( ) ;
връщане 0 ;
}

Триъгълникът е дефиниран като клас и неговите параметри са под ключовата дума public. След това площта на триъгълника се изчислява извън този клас чрез достъп до членовете на данните на публичния модификатор.







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

Модификатор за частен достъп в C++

Всички членове на класа, декларирани под ключовата дума private, няма да бъдат достъпни за никоя функция извън класа в програмата. Тези частни членове могат да се четат само от директните членове в рамките на същия клас. Приятелските функции и класове обаче също имат достъп до данните.



Пример

Декларират се двата класа public и private, а връщаната стойност на програмата трябва да бъде площта на триъгълника.

#include

#include

#include

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

частен :
плавам х , и , с ;
публичен :
невалиден вход ( )

{

cout << „Въведете страната x на триъгълник:-“ ;
храня се >> х ;
cout << „Въведете страната y на триъгълник:-“ ;
храня се >> и ;
cout << „Въведете страната z на триъгълник:-“ ;
храня се >> с ;

}
невалиден ■ площ ( )
{

плавам с = ( х + и + с ) / 2 ;
плавам ■ площ = sqrt ( с * ( с - х ) * ( с - и ) * ( с - с ) ) ;
cout << ' Площ на триъгълник =' << ■ площ ;

}

} ;

вътр основен ( )
{
Триъгълник t1 ;
t1. вход ( ) ;
t1. ■ площ ( ) ;
връщане 0 ;

}

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

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

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

Членовете и функциите под ключовата дума protected са защитени, те могат да бъдат достъпни само в рамките на класа и производния клас. Останалите класове нямат достъп до своите данни. Те са силно защитени.

Пример

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

#include

#include

#include

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

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

{

cout << „Въведете страната x на триъгълник:-“ ;
храня се >> х ;
cout << „Въведете страната y на триъгълник:-“ ;
храня се >> и ;
cout << „Въведете страната z на триъгълник:-“ ;
храня се >> с ;

}
невалиден ■ площ ( )
{
плавам с = ( х + и + с ) / 2 ;
плавам ■ площ = sqrt ( с * ( с - х ) * ( с - и ) * ( с - с ) ) ;
cout << ' Площ на триъгълник =' << ■ площ ;

}
} ;

вътр основен ( )

{
TriangleChild Дете ;
дете. вход ( ) ;
дете. ■ площ ( ) ;
връщане 0 ;

}

TriangleChild е наследен клас, който произлиза от класа Triangle. Променливите x, y и z се декларират в Triangle със защитената ключова дума. Това означава, че тези променливи са защитени, но могат да бъдат достъпни от TriangleChild, тъй като Triangle е негов родителски клас. Стойностите на променливите са присвоени в TriangleChild, въпреки че са декларирани в класа Triangle.

Променливите са достъпни чрез дъщерния клас и след това се изчислява площта на триъгълник.

Заключение

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