Javoblar Dasturlash asoslari
Download 57.96 Kb.
|
Javoblar Dasturlash asoslari
- Bu sahifa navigatsiya:
- 78.Sinf azolarining ozgaruvchilarini yopiq qilish include class Anything { public: static int s_value; // statik azo ozgaruvchini elon qilish };
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: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling