Javoblar Dasturlash asoslari


Download 57.96 Kb.
bet28/30
Sana08.03.2023
Hajmi57.96 Kb.
#1250414
1   ...   22   23   24   25   26   27   28   29   30
Bog'liq
Javoblar Dasturlash asoslari

class A { public:
A() { std::cout << "A\n"; } };
class B { private: A m_a; // B a'zo o'zgaruvchi sifatida A ni o'z ichiga oladi
public: B()
{ std::cout << "B\n"; } }
; int main() { B b; return 0; } Dasturni bajarish natijasi: A B
B o'zgaruvchisi yaratilganda, B () konstruktori chaqiriladi. Konstruktor tanasi bajarilishidan oldin m_a A sinfining standart konstruktorini chaqirib initsializatsiyalanadi. Bu A xulosasini beradi, keyin boshqaruv B konstruktoriga qaytadi va B konstruktorining tanasi bajarila boshlaydi. Bu yerda mantiqiy, chunki B () konstruktori m_a o'zgaruvchisini ishlatishni xohlashi mumkin, shuning uchun avval m_a ni initsializatsiyalash kerak.
78.Sinf a'zolarining o'zgaruvchilarini yopiq qilish
#include
class Anything { public: static int s_value; // statik a'zo o'zgaruvchini e'lon qilish };
int Anything::s_value = 3; // statik a'zo o'zgaruvchini aniqlash
int main() { // Eslatma: Biz bu yerda Anything obyektini yaratmaymiz. Anything::s_value = 4;
cout << Anything::s_value << '\n'; return 0; }
79. C++da inkapsulyatsiyadan foydalanish C++ da inkapsulyatsiya kirish spetsifikatorlari orqali amalga oshiriladi. Odatda, sinfning barcha a'zolar o'zgaruvchilari yopiqdir (amalga oshirish tafsilotlarini yashirish) va ko'pchilik metodlar ochiq (foydalanuvchiga ochiq interfeys bilan). Foydalanuvchilardan umumiy interfeysdan foydalanishni talab qilish a'zo o'zgaruvchilarini ochishdan ko'ra qiyinroq bo'lib tuyulishi mumkin, lekin u kodni qayta ishlatish va xizmat ko'rsatishninyaxshilanishini ta'minlaydiganko'plabfoydalafzalliklarni beradi. C++standartkutubxonasidagi barcha sinflar inkapsulyatsiyalangan. Tasavvur qiling, agar siz ularni ishlatish uchun string, vector yoki cout (va boshqa obyektlar) ning bajarilishini bilishingiz kerak bo'lsa, C ++ ni o'rganish qanchalik qiyin bo'lardi. C++ da inkapsulyatsiya. Jimlik bo’yicha, sinfda ma'lumotlar va usullar shaxsiydir; ular faqat tegishli sinf tomonidan o'qilishi va o'zgartirilishi mumkin. Kirish darajasini C ++ tomonidan berilgan tegishli kalit so'zlar yordamida o'zgartirish mumkin. C++ da bir nechta spetsifikatorlar mavjud va ular ma'lumotlarga kirishni quyidagicha o'zgartiradilar: ommaviy (public) ma'lumotlar - hamma uchun ochiq; himoyalangan (protected) - faqat sinf va sinf avlodlari uchun mavjud; xususiy (private) - faqat ular tegishli bo'lgan sinf uchun mavjud. Qisqalik uchun misollarda faqat ikkita daraja (private va public) yoritiladi. Inkapsulyatsiyaga misol. Kontakt sinfida public o'zgaruvchilar va metodlarga asosiy dasturdan kirish mumkin. private o'zgaruvchilar va metodlar faqat sinfning o'zi tomonidan o'qilishi, chaqirilishi yoki o'zgartirilishi mumkin.

Download 57.96 Kb.

Do'stlaringiz bilan baham:
1   ...   22   23   24   25   26   27   28   29   30




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling