Paano Kontrolin ang Mga Modifier ng Access sa C++: Pag-unawa sa Visibility ng Miyembro

Paano Kontrolin Ang Mga Modifier Ng Access Sa C Pag Unawa Sa Visibility Ng Miyembro



Ang pagtatago ng data ay isa sa mga pangunahing tampok ng C++ na tumutukoy sa paglilimita sa pag-access ng data sa isang klase upang maiwasan ang hindi gustong pag-access sa data ng isang klase mula sa labas. Samakatuwid, ang mga access modifier ay ginagamit upang tukuyin kung aling mga miyembro ng klase ang maa-access kung aling labas ang pinagmulan at kung alin ang hindi.

I-access ang Mga Modifier sa C++

Ginagamit ang mga access modifier para pamahalaan ang accessibility at ang visibility ng data ng isang klase. Nagtakda sila ng ilang mga paghihigpit sa mga miyembro ng data upang hindi sila ma-access ng mga panlabas na function. Ang mga access modifier ay may tatlong uri sa C++:

Pampublikong Access Modifier sa C++

Ang lahat ng mga miyembro ng klase na idineklara sa ilalim ng keyword na pampubliko ay magagamit sa lahat ng mga function sa labas ng klase sa loob ng programa. Ang operator ng direktang pag-access ng miyembro (.) na kilala rin bilang dot operator ay maaaring gamitin sa layunin ng partikular na klase na iyon upang ma-access ang mga miyembro ng data na ito.







Halimbawa

Ang pampublikong access modifier ay ginagamit upang magdeklara ng isang klase, at ang mga miyembro ng data nito ay ina-access ng iba pang mga function sa loob ng programa.



#include

#include

#include

gamit ang namespace std ;
klase Triangle
{
pampubliko :
lumutang x , at , Sa ;
walang bisa input ( )
{
cout << 'Ipasok ang gilid x ng isang tatsulok:-' ;
kumakain >> x ;
cout << 'Ipasok ang gilid y ng isang tatsulok:-' ;
kumakain >> at ;
cout << 'Ipasok ang gilid z ng isang tatsulok:-' ;
kumakain >> Sa ;
}
walang bisa Lugar ( )
{
lumutang s = ( x + at + Sa ) / 2 ;
lumutang lugar = sqrt ( s * ( s - x ) * ( s - at ) * ( s - Sa ) ) ;
cout << ' \n Lugar ng Triangle =' << lugar ;
}
} ;
int pangunahing ( )
{
Tatsulok t1 ;
t1. input ( ) ;
t1. Lugar ( ) ;
bumalik 0 ;
}

Ang Triangle ay tinukoy bilang ang klase at ang mga parameter nito ay nasa ilalim ng pampublikong keyword. Pagkatapos ang lugar ng tatsulok ay kinakalkula sa labas ng klase na ito sa pamamagitan ng pag-access sa mga miyembro ng data ng pampublikong modifier.







Ang tatlong panig ng tatsulok ay input ng gumagamit at ang lugar ng tatsulok ay kinakalkula sa pamamagitan ng pag-access sa mga halaga sa labas ng klase, gamit ang karaniwang formula, na 13.4164.

Pribadong Access Modifier sa C++

Ang lahat ng mga miyembro ng klase na idineklara sa ilalim ng keyword na pribado ay hindi magagamit sa anumang function sa labas ng klase sa programa. Ang mga pribadong miyembrong ito ay mababasa lamang ng mga direktang miyembro sa loob ng parehong klase. Gayunpaman, maa-access din ng mga function at klase ng kaibigan ang data.



Halimbawa

Ang dalawang klase ay pampubliko at pribado ay idineklara, at ang ibinabalik na halaga ng programa ay ang lugar ng tatsulok.

#include

#include

#include

gamit ang namespace std ;
klase Triangle
{

pribado :
lumutang x , at , Sa ;
pampubliko :
walang bisa input ( )

{

cout << 'Ipasok ang gilid x ng isang tatsulok:-' ;
kumakain >> x ;
cout << 'Ipasok ang gilid y ng isang tatsulok:-' ;
kumakain >> at ;
cout << 'Ipasok ang gilid z ng isang tatsulok:-' ;
kumakain >> Sa ;

}
walang bisa Lugar ( )
{

lumutang s = ( x + at + Sa ) / 2 ;
lumutang lugar = sqrt ( s * ( s - x ) * ( s - at ) * ( s - Sa ) ) ;
cout << ' \n Lugar ng Triangle =' << lugar ;

}

} ;

int pangunahing ( )
{
Tatsulok t1 ;
t1. input ( ) ;
t1. Lugar ( ) ;
bumalik 0 ;

}

Sa main(), hindi direktang ma-access ng object t1 ang private class variable float x, y at z, kaya maaari lang itong hindi direktang manipulahin sa pamamagitan ng public function input(), dahil nakukuha ng function na ito ang mga value ng x, y at z.

Ang lugar ng tatsulok ay nakuha sa pamamagitan ng pag-access sa pribadong klase sa pamamagitan ng pagmamanipula nito gamit ang pampublikong klase. Kung ang mga halaga ng x, y at z ay hindi idedeklara sa pampublikong klase, hindi sila maa-access sa main() para sa mga kalkulasyon.

Protektadong Access Modifier sa C++

Ang mga miyembro at function sa ilalim ng protektadong keyword ay protektado, maaari lamang silang ma-access sa loob ng klase at nagmula na klase. Ang iba sa mga klase ay hindi ma-access ang kanilang data. Sila ay lubos na protektado.

Halimbawa

Ang protektadong data sa ilalim ng protektadong keyword ay mababasa lamang sa loob ng klase at ng klase na siyang nagmula na klase. Ang halimbawang ito ay ang praktikal na pagpapakita ng protektadong access modifier.

#include

#include

#include

gamit ang namespace std ;
//klase ng magulang
klase Triangle
{

protektado :
lumutang x , at , Sa ;
} ;
//klase ng bata
klase TriangleChild : pampublikong Triangle {
pampubliko :
walang bisa input ( )

{

cout << 'Ipasok ang gilid x ng isang tatsulok:-' ;
kumakain >> x ;
cout << 'Ipasok ang gilid y ng isang tatsulok:-' ;
kumakain >> at ;
cout << 'Ipasok ang gilid z ng isang tatsulok:-' ;
kumakain >> Sa ;

}
walang bisa Lugar ( )
{
lumutang s = ( x + at + Sa ) / 2 ;
lumutang lugar = sqrt ( s * ( s - x ) * ( s - at ) * ( s - Sa ) ) ;
cout << ' \n Lugar ng Triangle =' << lugar ;

}
} ;

int pangunahing ( )

{
TriangleChild Child ;
bata. input ( ) ;
bata. Lugar ( ) ;
bumalik 0 ;

}

Ang TriangleChild ay isang minanang klase na nagmula sa klase ng Triangle. Ang mga variable na x, y at z ay idineklara sa Triangle na may protektadong keyword. Nangangahulugan ito na ang mga variable na ito ay protektado ngunit maaaring ma-access ng TriangleChild dahil ang Triangle ay ang pangunahing klase nito. Ang mga halaga ng mga variable ay itinalaga sa TriangleChild kahit na sila ay idineklara sa Triangle class.

Ang mga variable ay ina-access sa pamamagitan ng klase ng bata, at pagkatapos ay kinakalkula ang lugar ng isang tatsulok.

Konklusyon

Pinipigilan ng pagtatago ng data ang hindi gustong pag-access sa data ng isang klase mula sa labas. Ginagamit ang mga access modifier para pamahalaan ang accessibility at ang visibility ng data sa isang program. Ginagamit ang pribado, protektado at pampublikong access modifier para sa pagtatago ng data. Ang data sa ilalim ng pampublikong keyword ay mababasa rin ng mga function mula sa labas ng klase. Ang data na idineklara bilang pribado ay mababasa lamang sa loob ng klase, habang ang protektadong data ay maa-access din ng magulang at ng child class.