void setYear(int year) { m_year = year; } // year uchun setter
};
48. Sinflar tarkibida gettrlardan foydalanish va unga oid misollar.Odatda kirish funksiyalari ikki xil bo'ladi:
1. getterlar - bu sinfning yopiq a'zo o'zgaruvchilarining qiymatlarini qaytaradigan funksiyalar; 2. setterlar - bu sinfning yopiq a'zo o'zgaruvchilariga qiymatlarni belgilashga imkon beradigan funksiyalar.
Bu yerda barcha yopiq a'zo o'zgaruvchilari uchun getter va setterlardan foydalanadigan sinfning misoli:
class Date { private: int m_day; int m_month; int m_year; public: int getDay() { return m_day; } // day uchun getter void setDay(int day) { m_day = day; } // day uchun setter int getMonth() { return m_month; } // month uchun getter void setMonth(int month) { m_month = month; } // month uchun setter int getYear() { return m_year; } // year uchun gettter void setYear(int year) { m_year = year; } // year uchun setter }; Bu sinfda hech qanday muammo yo'q, shuning uchun foydalanuvchi to'g'ridan -to'g'ri ushbu sinfning yopiq a'zo o'zgaruvchilariga qiymatlarni olishi yoki belgilashi mumkin, chunki to'liq qabul qiluvchilar va sozlovchilar to'plami
49. Spetsifikatorlarga kirish Spetsifikatorlarga kirish. Quyidagi dasturni ko'rib chiqaylik:
struct DateStruct // struktura a'zolari jimlik bo'yicha hammaga ochiq
{
int day; // jimlik bo'yicha ochiq, har qanday obyektga kirish huquqi mavjud
int month; // jimlik bo'yicha ochiq, har qanday obyektga kirish huquqi mavjud
int year; // jimlik bo'yicha ochiq, har qanday obyektga kirish huquqi mavjud
};
int main()
{
DateStruct date;
date.day = 12;
date.month = 11;
date.year = 2018;
return 0;
}
Bu yerda DateStruct strukturasini e'lon qilamiz va keyin ularni ishga tushirish uchun a'zolariga to'g'ridan-to'g'ri kiramiz. Bu ishlaydi, chunki strukturaning barcha a'zolari sukut bo'yicha ochiq. Ochiq a'zolar (yoki "public a'zolari") - bu struktura yoki sinf a'zolari, ularga bir xil struktura yoki sinf tashqarisidan kirish mumkin. Yuqoridagi dasturda main() funksiyasi strukturadan tashqarida, lekin u ochiq bo'lgani uchun kun, oy va yil a'zolariga to'g'ridan-to'g'ri kira oladi.
50. public spetsifikatori Siz ushbu dasturni kompilyatsiya qila olmaysiz, chunki sinfning barcha a'zolari jimlik bo'yicha yopiqdir. 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. Sinf a'zolari jimlik bo'yicha yopiq bo'lsa-da, biz ularni public kalit so'z yordamida ochiq qilishimiz mumkin:
class DateClass { public: // int m_day; // ochiq, har qanday ob'ekt kirish huquqiga ega int m_month; int m_year; }; int main() { DateClass date; date.m_day = 12; //xato emas, chunki m_dayda public kirish spetsifikatori mavjud date.m_month = 11; date.m_year = 2018; return 0; }
DateClass a'zolari endi hamma uchun ochiq bo'lgani uchun ularga to'g'ridan -to'g'ri main() funksiyasidan kirish mumkin. public kalit so'z ikki nuqta bilan birgalikda kirish spetsifikatori deb ataladi. Kirish spetsifikatori ushbu spetsifikator a'zolariga kim kirishi mumkinligini aniqlaydi. Har bir a'zo kirish spetsifikatoriga muvofiq kirish darajasini "oladi" (agar ko'rsatilmagan bo'lsa, standart kirish spetsifikatoriga ko'ra).
Do'stlaringiz bilan baham: |