C++ kirish spetsifikatorlari


ULASHISH

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 mumkin
  • private — a’zolarga sinfdan tashqaridan murojaat qilib (yoki ularni ko‘rib) bo‘lmaydi
  • protected — 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
O‘zingiz sinab ko‘ring »

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!