Apakah Perbezaan Antara Ahli Persendirian dan Dilindungi Kelas C++

Apakah Perbezaan Antara Ahli Persendirian Dan Dilindungi Kelas C



C++ ialah bahasa pengaturcaraan berorientasikan objek (OOP) yang menyediakan mekanisme untuk merangkum data dan fungsi ke dalam satu entiti yang dipanggil kelas. Salah satu ciri penting kelas ialah keupayaan untuk menentukan tahap akses untuk ahlinya. Dalam Pengaturcaraan Berorientasikan Objek, penentu akses digunakan untuk mengawal keterlihatan dan kebolehcapaian medan dan kaedah kelas. Dilindungi , awam , dan persendirian tahap capaian ialah tiga jenis asas tahap capaian dalam C++.

Dalam penulisan ini, kita akan membincangkan perbezaan antara dua yang utama penentu akses s, persendirian dan dilindungi ahli kelas C++.

Penentu Akses Peribadi

Ahli persendirian diisytiharkan menggunakan kata kunci ‘ persendirian '. The penentu akses peribadi mengehadkan akses kepada ahli kelas hanya kepada kelas itu sendiri. Kod di luar kelas tidak boleh mengakses atau mengubah ahli persendirian. Ini bermakna hanya kaedah yang diisytiharkan dalam kelas boleh mengakses dan beroperasi pada ahli persendirian , kelas terbitan pun tidak boleh mengakses ahli persendirian . Penggunaan biasa ahli persendirian adalah untuk memastikan operasi kelas yang betul. Ahli persendirian digunakan untuk merangkum data kelas dan menyediakan tahap abstraksi kepada pengguna kelas.







#include
menggunakan ruang nama std ;

kelas pemain {

persendirian :
nama rentetan ;
int umur ;

awam :
batal getPlayer ( )
{
cout << 'Masukkan nama:' ;
makan >> nama ;
cout << 'Masukkan umur:' ;
makan >> umur ;
}
batal pemain pertunjukan ( )
{
cout << 'Nama: ' << nama << endl ;
cout << 'Umur:' << umur << endl ;
}
} ;

int utama ( )
{
pemain pl ;
pl. getPlayer ( ) ;
pl. pemain pertunjukan ( ) ;

kembali 0 ;
}

Dalam kod di atas, kami menggunakan kaedah ahli awam getPlayer() dan showPlayer() untuk mengakses kedua-duanya persendirian ahli nama dan umur . The getPlayer() fungsi mendapat input daripada pengguna dan memaparkannya pada skrin melalui showPlayer() fungsi.



Pengeluaran







Penentu Akses Terlindung

Ahli yang dilindungi sesuatu kelas boleh diakses oleh kedua-dua kelas terbitan dan fungsi ahli kelas itu sendiri. Ahli yang dilindungi digunakan untuk menyediakan tahap akses kepada kelas yang diperoleh tanpa mendedahkan butiran pelaksanaan kepada dunia luar. Ahli yang dilindungi diisytiharkan menggunakan kata kunci ‘ dilindungi ' dan juga kolon (:) watak. Ahli yang dilindungi membenarkan kelas untuk dilanjutkan dan diubah suai, tanpa menjejaskan integritinya. Kelas terbitan boleh menggunakan ahli yang dilindungi untuk memperhalusi atau menyesuaikan tingkah laku kelas asas.

Berikut ialah contoh kelas dengan ahli yang dilindungi :



#include
menggunakan ruang nama std;

pemain kelas {
peribadi:
nama rentetan;
umur int;

dilindungi:
matlamat int;

awam:
batal getPlayer ( )
{
cout <> nama;
cout <> umur;
}
void showPlayer ( )
{
cout << 'Nama: ' << nama << endl;
cout << 'Umur:' << umur << endl;
}
} ;

pemain kelas1 : pemain awam {

peribadi:
negara rentetan;

awam:
batal set_matlamat ( int g )
{
matlamat = g;
}
batal getPlayer1 ( )
{
getPlayer ( ) ;
cout <> negara;
}
batal persembahanPemain1 ( )
{
cout << 'matlamat: ' << matlamat << endl;
pemain pertunjukan ( ) ;
cout << 'Negara:' << negara << endl;
}
} ;

int utama ( )
{
pemain1 pl;
pl.set_goals ( 101 ) ;
pl.getPlayer1 ( ) ;
pl.showPlayer1 ( ) ;

kembali 0 ;
}

The pemain kelas terdiri daripada dua ahli persendirian , nama dan umur , satu dilindungi ahli, matlamat , dan persendirian ahli digunakan di dalam awam fungsi ahli, getPlayer() dan showPlayer() . Terdapat dua kelas, pemain dan pemain1 , kedua-duanya adalah kelas asas. satu persendirian ahli, negara , dan tiga awam kaedah ahli membentuk pemain1 kelas. Menetapkan matlamat() digunakan untuk menukar ahli yang dilindungi matlamat' nilai. getPlayer1() memanggil getPlayer() fungsi ahli pemain kelas sambil mendapatkan semula input untuk negara. Serupa dengan ini, showPlayer1() memanggil showPlayer() fungsi ahli dan mencetak matlamat dan negara nilai.

Pengeluaran

Perbezaan Antara Ahli Persendirian dan Dilindungi Kelas C++

Berikut disenaraikan beberapa perbezaan utama antara Persendirian dan Dilindungi ahli kelas C++.

1: Skop dan Kefungsian

Apabila mempertimbangkan penggunaan penentu akses, adalah penting untuk memikirkan dengan teliti tentang skop dan kefungsian daripada program tersebut. A penentu akses peribadi menyediakan tahap keselamatan tertinggi dan mengelakkan akses yang tidak diingini kepada pembolehubah dan kaedah. Sebaliknya, a penentu akses dilindungi menawarkan rangkaian kebolehaksesan dan fleksibiliti yang lebih meluas, yang penting apabila merancang untuk mewarisi kelas terbitan daripada kelas asas.

2: Tahap Akses

Perbezaan utama antara persendirian dan ahli yang dilindungi ialah tahap akses yang mereka sediakan. Dilindungi ahli boleh diakses oleh kedua-dua kelas turunan kelas dan fungsi ahli, tetapi persendirian ahli hanya boleh diperolehi oleh fungsi ahli kelas.

3: Enkapsulasi Kelas

Satu lagi perbezaan penting antara persendirian dan dilindungi ahli adalah peranan mereka dalam mengekalkan enkapsulasi kelas. Untuk mengasingkan data dan memberikan pengguna kelas beberapa tahap abstraksi, persendirian ahli bekerja. Dilindungi ahli digunakan untuk mengurus struktur warisan dan menyediakan akses kepada ahli kelas asas mengikut kelas terbitan.

Fikiran Akhir

Persendirian dan ahli yang dilindungi ialah dua tahap akses penting dalam kelas C++. The persendirian penentu akses menjadikan ahli kelas tidak boleh diakses oleh semua pengguna luaran, dan ia digunakan untuk menyimpan maklumat persendirian dalam kelas. Sebaliknya, a dilindungi penentu akses membenarkan akses kepada ahli kelas hanya oleh kelas terbitan, digunakan untuk menyediakan fungsi kelas asas dan membenarkan pengubahsuaian tanpa mengubah tingkah laku kelas asas. Tahap akses ahli kelas memainkan peranan penting dalam mengekalkan pengkapsulan kelas dan menyediakan tahap akses kepada pengguna kelas.