Xususiyatni Qanday Tortish Kerak

Mundarija:

Xususiyatni Qanday Tortish Kerak
Xususiyatni Qanday Tortish Kerak

Video: Xususiyatni Qanday Tortish Kerak

Video: Xususiyatni Qanday Tortish Kerak
Video: AYOLLAR KO`KRAGINI ( ZAYTUN YOG`I ) TARANGLASHTIRADI... 2024, May
Anonim

Ob'ektlar va sinfning boshqa misollari bilan ishlashda atributlarga kirish dasturchi uchun odatiy operatsiyalardan biridir. Ob'ektlarda saqlangan ba'zi ma'lumotlarga kirish huquqi, ular uchun ishlatiladigan xavfsizlik usullarini hisobga olgan holda qiyin bo'lishi mumkin. Shunday qilib, xususiy va himoyalangan spetsifikatorlar tomonidan yopilgan atributlar sinf instansiyasidan faqat shu ob'ektga yoki bolaga tegishli bo'lgan (himoyalangan) sinfga tegishli usulda chiqarilishi mumkin.

Xususiyatni qanday tortish kerak
Xususiyatni qanday tortish kerak

Ko'rsatmalar

1-qadam

Dasturingizda atributi kerak bo'lgan sinf namunasiga ob'ekt yoki ko'rsatgich yarating. Bunday operatsiya uchun standart qurilish CMyClass myObj1. Ba'zan ob'ektni ishga tushirish uchun ma'lum parametrlarni sinf konstruktoriga o'tkazishingiz kerak. Bunday holda, ob'ektni yaratish yozuvlari quyidagicha ko'rinishi mumkin: CMyClass myObj1 (param1, param2, param3), bu erda CMyClass sinf nomi, myObj1 - yaratilayotgan ob'ekt nomi va konstruktor tomonidan so'ralgan barcha parametrlar keltirilgan. qavs ichida. Sinf namunasiga ko'rsatgich quyidagicha yaratiladi: CMyClass * pObj1 = yangi CMyClass (param1, param2, param3).

2-qadam

Atributni chaqirishning eng oddiy usuli bu to'g'ridan-to'g'ri dasturning istalgan joyiga murojaat qilishdir. Biroq, bu faqat jamoat modifikatori bilan sinfda tasvirlangan ochiq ma'lumotlar uchun mumkin. Ob'ekt orqali to'g'ridan-to'g'ri kirish quyidagicha ko'rinadi: myObj1.attr1, bu erda attr1 bu sinfning atributidir. Ko'rsatkich uchun qo'ng'iroq quyidagicha bo'ladi: pObj1–> attr1.

3-qadam

Agar siz murojaat qilishingiz kerak bo'lgan atribut maxfiy holatga ega bo'lsa va xususiy modifikator bilan sinfda tavsiflangan bo'lsa, unda unga kirish faqat shu sinfga tegishli bo'lgan usuldan mumkin. Sinfning usuli yoki funktsiyasi jamoat maqomiga ega bo'lishi kerak. Kerakli atributni qayta ishlashni yozadigan sinfga yangi usul qo'shing. Bunday holda, parametrlar funktsiyaga o'tkazilishi mumkin, bu qiymatga qarab ma'lum harakatlar amalga oshiriladi. Funktsiyaning o'zi atributning mazmuni kabi ma'lumotlarni qaytarishi mumkin. Shaxsiy atribut bilan ishlash uchun ikkala funktsiyani amalga oshiradigan C ++ dastur kodi: class CMyClass {protected: int attr1; // public attribute: void funcA1 (int param) {attr1 = param; } int funcA2 () {return attr1; }};

4-qadam

Shunday qilib, attr1 xususiy atributini kerakli qiymatga o'rnatish uchun avval yaratilgan ob'ektdan foydalangan holda bir xil sinfdagi usulni chaqiring: myObj1.funcA1 (10) - shunga o'xshash yashirin operatsiya bilan 10 qiymati attr1 atributiga joylashtiriladi. Sinf namunasiga ko'rsatgich bilan ishlaganda shunga o'xshash operatsiya quyidagicha bo'ladi: rObj1–> funcA (10). Attr1 xususiy atributini olish va unda saqlangan qiymatni bilish uchun sinfning boshqa usulini chaqiring: int Res = myObj1.funcA2 (). Bunda Res butun o'zgaruvchisiga maxfiy sinf o'zgaruvchisining qiymati beriladi.

5-qadam

Agar siz bolalar sinflarining barcha ob'ektlarida himoyalangan maqomga ega bo'lgan atributni chaqirishingiz kerak bo'lsa, to'g'ridan-to'g'ri uning o'zgaruvchisiga murojaat qiling. Biroq, chet el sinflari funktsiyalarida ishlashda, himoyalangan ma'lumotlarga kirish yuqorida tavsiflangan tarzda olinishi kerak bo'ladi.

6-qadam

Ob'ekt yaratmasdan atributni chaqirish uchun uning konstruktsiyasini sinfdagi statik deb quyidagi konstruksiyadan foydalanib e'lon qiling: static int attr1. Bunday holda, yozuvni ko'rsatib, atributni dastur kodining istalgan joyidan chiqarib olishingiz mumkin: CMyClass:: attr1.

Tavsiya: