Bagikan melalui


dilindungi (C++)

Sintaks

protected:
   [member-list]
protected base-class

Keterangan

Kata protected kunci menentukan akses ke anggota kelas dalam daftar anggota hingga penentu akses berikutnya (public atau private) atau akhir definisi kelas. Anggota kelas yang dinyatakan sebagai protected hanya dapat digunakan oleh berikut:

  • Fungsi anggota kelas yang awalnya mendeklarasikan anggota ini.

  • Teman-teman kelas yang awalnya mendeklarasikan anggota ini.

  • Kelas yang berasal dari akses publik atau terlindungi dari kelas yang awalnya mendeklarasikan anggota ini.

  • Kelas turunan pribadi langsung yang juga memiliki akses privat ke anggota yang dilindungi.

Saat mendahului nama kelas dasar, protected kata kunci menentukan bahwa anggota publik dan terlindungi dari kelas dasar adalah anggota yang dilindungi dari kelas turunannya.

Anggota yang dilindungi tidak swasta sebagai private anggota, yang hanya dapat diakses oleh anggota kelas tempat mereka dideklarasikan tetapi mereka tidak sebagai publik sebagai public anggota, yang dapat diakses dalam fungsi apa pun.

Anggota yang dilindungi yang juga dinyatakan sebagai static dapat diakses oleh setiap fungsi teman atau anggota dari kelas turunan. Anggota yang dilindungi yang tidak dinyatakan sebagai static dapat diakses oleh teman dan anggota fungsi di kelas turunan hanya melalui penunjuk ke, referensi ke, atau objek kelas turunan.

Untuk informasi terkait, lihat tabel teman, publik, privat, dan akses anggota di Mengontrol Akses ke Anggota Kelas.

/clr Spesifik

Dalam jenis CLR, kata kunci penentu akses C++ (public, private, dan protected) dapat memengaruhi visibilitas jenis dan metode sehubungan dengan rakitan. Untuk informasi selengkapnya, lihat Kontrol Akses Anggota.

Catatan

File yang dikompilasi dengan /LN tidak terpengaruh oleh perilaku ini. Dalam hal ini, semua kelas terkelola (publik atau privat) akan terlihat.

END /clr Spesifik

Contoh

// keyword_protected.cpp
// compile with: /EHsc
#include <iostream>

using namespace std;
class X {
public:
   void setProtMemb( int i ) { m_protMemb = i; }
   void Display() { cout << m_protMemb << endl; }
protected:
   int  m_protMemb;
   void Protfunc() { cout << "\nAccess allowed\n"; }
} x;

class Y : public X {
public:
   void useProtfunc() { Protfunc(); }
} y;

int main() {
   // x.m_protMemb;         error, m_protMemb is protected
   x.setProtMemb( 0 );   // OK, uses public access function
   x.Display();
   y.setProtMemb( 5 );   // OK, uses public access function
   y.Display();
   // x.Protfunc();         error, Protfunc() is protected
   y.useProtfunc();      // OK, uses public access function
                         // in the derived class
}

Lihat juga

Mengontrol Akses ke Anggota Kelas
Kata kunci