C++ kirish spetsifikatorlari
Kirish spetsifikatorlari
Kirish spetsifikatorlari sinf a’zolariga (atributlar va metodlarga) qanday murojaat qilish mumkinligini boshqaradi.
Ular ma’lumotlarni himoya qilishga va kodni faqat kerakli qismlarini ko‘rish yoki o‘zgartirish mumkin bo‘ladigan tarzda tartibga solishga yordam beradi.
Kirish spetsifikatorlaridan foydalanish
public kalit so‘zi — kirish spetsifikatori.
Quyidagi misolda a’zolar public — ya’ni ularga koddan tashqaridan murojaat qilish va ularni o‘zgartirish mumkin:
Misol
class MyClass { // The class
public: // Access specifier
// class members goes here
};
O‘zingiz sinab ko‘ring »
Biroq a’zolar yopiq (private) bo‘lishini va tashqi dunyodan yashirilishini istasak-chi?
C++ tilida uchta kirish spetsifikatori mavjud:
public— a’zolarga sinfdan tashqaridan murojaat qilish mumkinprivate— a’zolarga sinfdan tashqaridan murojaat qilib (yoki ularni ko‘rib) bo‘lmaydiprotected— a’zolarga sinfdan tashqaridan murojaat qilib bo‘lmaydi, biroq meros olgan sinflarda ularga murojaat qilish mumkin. Vorislik haqida keyinroq batafsil bilib olasiz.
private spetsifikatori
private sifatida e’lon qilingan a’zolarga sinfdan tashqaridan murojaat qilib bo‘lmaydi.
Quyidagi misolda public va private a’zolar o‘rtasidagi farqlarni ko‘rsatamiz:
Misol
class MyClass {
public: // Public access specifier
int x; // Public attribute
private: // Private access specifier
int y; // Private attribute
};
int main() {
MyClass myObj;
myObj.x = 25; // Allowed (public)
myObj.y = 50; // Not allowed (private)
return 0;
}
Agar private a’zoga murojaat qilishga urinsangiz, xato yuz beradi:
error: y is private
Eslatma: Sinfning private a’zolariga shu sinf ichidagi public metod yordamida murojaat qilish mumkin. Buni qanday qilishni keyingi bobda (Inkapsulyatsiya) ko‘ring.
Maslahat: Sinf atributlarini (imkon qadar tez-tez) private qilib e’lon qilish yaxshi amaliyot hisoblanadi. Bu o‘zingiz (yoki boshqalar) kodni buzib qo‘yish ehtimolini kamaytiradi. Bu, shuningdek, Inkapsulyatsiya tushunchasining asosiy tarkibiy qismi bo‘lib, u haqda keyingi bobda batafsil bilib olasiz.
Eslatma: Agar kirish spetsifikatorini ko‘rsatmasangiz, sinfning barcha a’zolari sukut bo‘yicha private bo‘ladi:
Misol
class MyClass {
int x; // Private attribute
int y; // Private attribute
};
protected spetsifikatori
protected sifatida e’lon qilingan a’zolarga sinfdan tashqaridan murojaat qilib bo‘lmaydi, lekin farzand sinflarda ularga murojaat qilish mumkin.
Vorislik haqida keyingi boblarda batafsil bilib olasiz.
Hayotiy misol
- Public: Uyingizning old eshigi kabi — istalgan kishi kira oladi.
- Private: Qulflangan tortma kabi — uni faqat egasi (yoki ishonchli do‘stlari) ocha oladi.
- Protected: Faqat oila a’zolari uchun mo‘ljallangan xona kabi — farzandlar (voris sinflar) kira oladi, boshqalar esa kira olmaydi.
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
