Sinfning public a’zolari va misollar Yopiq a'zolar (yoki "private a'zolar") - faqat shu sinfning boshqa a'zolari kira oladigan sinf a'zolari. main() DateClass a'zosi bo'lmaganligi sababli, date obyekti shaxsiy a'zolariga kira olmaydi.Kirish funksiyasi - bu qisqa umumiy funksiya, uning vazifasi sinfning yopiq a'zolarining o'zgaruvchisini olish yoki o'zgartirishdir. Masalan: class MyString
{ private: char *m_string; // dinamik ravishda qatorni ajratish i
nt m_length; // satr uzunligini kuzatish uchun o'zgaruvchidan foydalaning
public: int getLength() { return m_length; } // m_length qiymatini olish uchun kirish funktsiyasi }; Bu yerda getLength () - bu m_length qiymatini qaytaradigan kirish funksiyasi.
132. Sinfning protected a’zolari va misollar Himoyalangan kalit so'z a'zolar ro'yxatidagi sinf a'zolariga keyingi kirish spetsifikatsiyasi (ommaviy yoki shaxsiy) yoki sinf ta'rifining oxirigacha kirishni belgilaydi. Himoyalangan deb e'lon qilingan sinf a'zolaridan faqat quyidagilar foydalanishi mumkin:
Ushbu a'zolarni dastlab e'lon qilgan sinfning a'zo funktsiyalari.Bu a'zolarni dastlab e'lon qilgan sinfning do'stlari.Ushbu a'zolarni dastlab e'lon qilgan sinfdan ommaviy yoki himoyalangan kirish bilan olingan sinflar.To'g'ridan-to'g'ri xususiy olingan sinflar, shuningdek, himoyalangan a'zolarga shaxsiy kirish huquqiga ega.Asosiy sinf nomidan oldin himoyalangan kalit so'z asosiy sinfning umumiy va himoyalangan a'zolari uning hosila sinflarining himoyalangan a'zolari ekanligini bildiradi.Himoyalangan a'zolar faqat o'zlari e'lon qilingan sinf a'zolari uchun ochiq bo'lgan shaxsiy a'zolar kabi shaxsiy emas, lekin ular har qanday funktsiyada foydalanish mumkin bo'lgan ommaviy a'zolar kabi ochiq emas.Statik deb e'lon qilingan himoyalangan a'zolar olingan sinfning istalgan do'stlari yoki a'zo funksiyalari uchun foydalanishlari mumkin. Statik deb e'lon qilinmagan himoyalangan a'zolar do'stlar va olingan sinfdagi a'zo funktsiyalari uchun faqat olingan sinfga ko'rsatgich, havola yoki ob'ekt orqali kirishlari mumkin.Tegishli ma'lumot uchun do'st, umumiy, shaxsiy va a'zolarga kirish jadvaliga qarang
// keyword_protected.cpp
// kompilyatsiya qilish: /EHsc
#include
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; xato, m_protMemb himoyalangan
x.setProtMemb( 0 ); // OK, umumiy foydalanish funksiyasidan foydalanadi
x.Display();
y.setProtMemb( 5 ); // OK, umumiy foydalanish funksiyasidan foydalanadi y.Display();
// x.Protfunc(); xato, Protfunc() himoyalangan
y.useProtfunc(); // OK, umumiy foydalanish
funksiyasidan foydalanadi
// olingan sinfda}
133.