Cara Mengawal Pengubahsuai Akses dalam C++: Memahami Keterlihatan Ahli

Cara Mengawal Pengubahsuai Akses Dalam C Memahami Keterlihatan Ahli



Penyembunyian data adalah salah satu ciri utama C++ yang merujuk kepada pengehadan capaian data dalam kelas untuk menghalang capaian yang tidak diingini kepada data kelas dari luar. Oleh itu, pengubah suai akses digunakan untuk menentukan ahli kelas mana yang boleh diakses oleh sumber luar dan mana yang tidak.

Akses Pengubahsuai dalam C++

Pengubah suai akses digunakan untuk mengurus kebolehcapaian dan keterlihatan data kelas. Mereka menetapkan beberapa sekatan kepada ahli data supaya mereka tidak boleh diakses oleh fungsi luar. Pengubah suai akses adalah daripada tiga jenis dalam C++:

Pengubahsuai Akses Awam dalam C++

Semua ahli kelas yang diisytiharkan di bawah kata kunci awam akan tersedia untuk semua fungsi di luar kelas dalam program. Pengendali akses ahli langsung (.) yang juga dikenali sebagai pengendali titik boleh digunakan dengan objek kelas khusus itu untuk mengakses ahli data ini.







Contoh

Pengubah suai akses awam digunakan untuk mengisytiharkan kelas, dan ahli datanya diakses oleh fungsi lain dalam program.



#include

#include

#include

menggunakan ruang nama std ;
kelas Segitiga
{
awam :
terapung x , dan , Dengan ;
batal input ( )
{
cout << 'Masukkan sisi x segi tiga:-' ;
makan >> x ;
cout << 'Masukkan sisi y segitiga:-' ;
makan >> dan ;
cout << 'Masukkan sisi z segi tiga:-' ;
makan >> Dengan ;
}
batal Kawasan ( )
{
terapung s = ( x + dan + Dengan ) / 2 ;
terapung kawasan = persegi ( s * ( s - x ) * ( s - dan ) * ( s - Dengan ) ) ;
cout << ' \n Luas Segi Tiga =' << kawasan ;
}
} ;
int utama ( )
{
Segi tiga t1 ;
t1. input ( ) ;
t1. Kawasan ( ) ;
kembali 0 ;
}

Segitiga ditakrifkan sebagai kelas dan parameternya berada di bawah kata kunci awam. Kemudian kawasan segi tiga dikira di luar kelas ini melalui mengakses ahli data pengubah suai awam.







Tiga sisi segi tiga dimasukkan oleh pengguna dan luas segi tiga dikira dengan mengakses nilai di luar kelas, menggunakan formula piawai, iaitu 13.4164.

Pengubahsuai Akses Peribadi dalam C++

Semua ahli kelas yang diisytiharkan di bawah kata kunci peribadi tidak akan tersedia untuk sebarang fungsi di luar kelas dalam program. Ahli persendirian ini hanya boleh dibaca oleh ahli langsung dalam kelas yang sama. Walau bagaimanapun, fungsi dan kelas rakan juga boleh mengakses data.



Contoh

Kedua-dua kelas awam dan persendirian diisytiharkan, dan nilai pulangan program ialah kawasan segi tiga.

#include

#include

#include

menggunakan ruang nama std ;
kelas Segitiga
{

persendirian :
terapung x , dan , Dengan ;
awam :
batal input ( )

{

cout << 'Masukkan sisi x segi tiga:-' ;
makan >> x ;
cout << 'Masukkan sisi y segitiga:-' ;
makan >> dan ;
cout << 'Masukkan sisi z segi tiga:-' ;
makan >> Dengan ;

}
batal Kawasan ( )
{

terapung s = ( x + dan + Dengan ) / 2 ;
terapung kawasan = persegi ( s * ( s - x ) * ( s - dan ) * ( s - Dengan ) ) ;
cout << ' \n Luas Segi Tiga =' << kawasan ;

}

} ;

int utama ( )
{
Segi tiga t1 ;
t1. input ( ) ;
t1. Kawasan ( ) ;
kembali 0 ;

}

Dalam main(), objek t1 tidak boleh terus mengakses apungan pembolehubah kelas persendirian x, y dan z, jadi ia hanya boleh dimanipulasi secara tidak langsung melalui input fungsi awam(), kerana fungsi ini memperoleh nilai x, y dan z.

Luas segi tiga diperolehi dengan mengakses kelas persendirian melalui memanipulasinya menggunakan kelas awam. Jika nilai x, y dan z tidak akan diisytiharkan dalam kelas awam, maka nilai tersebut tidak akan diakses dalam main() untuk pengiraan.

Pengubahsuai Akses Terlindung dalam C++

Ahli dan fungsi di bawah kata kunci yang dilindungi dilindungi, mereka hanya boleh diakses dalam kelas dan kelas terbitan. Selebihnya kelas tidak dapat mengakses data mereka. Mereka sangat dilindungi.

Contoh

Data yang dilindungi di bawah kata kunci yang dilindungi hanya boleh dibaca dalam kelas dan oleh kelas yang merupakan kelas terbitan. Contoh ini ialah demonstrasi praktikal pengubah akses yang dilindungi.

#include

#include

#include

menggunakan ruang nama std ;
//kelas ibu bapa
kelas Segitiga
{

dilindungi :
terapung x , dan , Dengan ;
} ;
//kelas kanak-kanak
kelas TriangleChild : Segitiga awam {
awam :
batal input ( )

{

cout << 'Masukkan sisi x segi tiga:-' ;
makan >> x ;
cout << 'Masukkan sisi y segitiga:-' ;
makan >> dan ;
cout << 'Masukkan sisi z segi tiga:-' ;
makan >> Dengan ;

}
batal Kawasan ( )
{
terapung s = ( x + dan + Dengan ) / 2 ;
terapung kawasan = persegi ( s * ( s - x ) * ( s - dan ) * ( s - Dengan ) ) ;
cout << ' \n Luas Segi Tiga =' << kawasan ;

}
} ;

int utama ( )

{
Kanak-kanak Segitiga ;
anak. input ( ) ;
anak. Kawasan ( ) ;
kembali 0 ;

}

TriangleChild ialah kelas yang diwarisi yang diperoleh daripada kelas Triangle. Pembolehubah x, y dan z diisytiharkan dalam Segitiga dengan kata kunci yang dilindungi. Ini bermakna pembolehubah ini dilindungi tetapi boleh diakses oleh TriangleChild kerana Triangle ialah kelas induknya. Nilai pembolehubah telah ditetapkan dalam TriangleChild walaupun ia diisytiharkan dalam kelas Triangle.

Pembolehubah diakses melalui kelas kanak-kanak, dan kemudian luas segi tiga dikira.

Kesimpulan

Penyembunyian data menghalang akses yang tidak diingini kepada data kelas dari luar. Pengubah suai capaian digunakan untuk mengurus kebolehcapaian dan keterlihatan data dalam program. Pengubah suai akses peribadi, dilindungi dan awam digunakan untuk menyembunyikan data. Data di bawah kata kunci awam juga boleh dibaca oleh fungsi dari luar kelas. Data yang diisytiharkan sebagai peribadi hanya boleh dibaca dalam kelas, manakala data yang dilindungi boleh diakses oleh ibu bapa dan kelas anak juga.