Bazaviy sinf a'zolariga murojaatni boshqarish


Himoyalangan a'zolardan foydalanish



Yüklə 261,55 Kb.
səhifə2/5
tarix23.12.2023
ölçüsü261,55 Kb.
#154797
1   2   3   4   5
13-15-mavzu

Himoyalangan a'zolardan foydalanish
Sinf a'zosi nafaqat ochiq (jamoat) yoki yopiq (xususiy), balki himoyalangan deb e'lon qilinishi mumkin. Bundan tashqari, umuman asosiy sinf qo'riqlanadigan tartibda ishlatilishi mumkin. Kalit so'zni himoya qilish C ++ ga qo'shilishi uchun C ++ ga qo'shilgan.
Agar sinf a'zosida himoyalangan tartibda e'lon qilingan bo'lsa, u ushbu sinfga a'zo bo'lmagan dasturning boshqa elementlari uchun mavjud bo'lmaydi. Bitta muhim istisno bilan, himoyalangan a'zoga kirish yopiq a'zosi, I.E. Xuddi shu sinfning boshqa a'zolari u bilan bog'lanishlari mumkin. Ushbu qoidadan istisno, himoyalangan a'zoni meros qilishda namoyon bo'ladi. Bunday holda, himoyalangan a'zo yopiqdan sezilarli darajada farq qiladi.
Himoyalangan kirish parametrlari himoyalangan a'zolarni e'lon qiladi yoki himoyalangan sinfning merosini ta'minlaydi.
Ma'lumki, baza darsining yopiq a'zosi dasturning boshqa qismlarida, shu jumladan sinflarning hosilalariga mavjud emas. Biroq, himoyalangan a'zolar bilan hamma narsa boshqacha. Agar bazaviy sinf ommaviy sinf sifatida meros bo'lib qolsa, asosiy sinfning himoyalangan a'zolari deriativ sinfning himoyalangan a'zolariga aylanadilar, I.E. hosilalar uchun mo'ljallangan. Shuning uchun, himoyalangan aniq vositadan foydalanib, siz sinfning a'zolarini sinf a'zolari sifatida yaratishingiz mumkin, ammo ular deridiy sinfni meros qilib olishadi va ularga kirishlari mumkin.Рассмотрим следующий пример программы.
//Шилдт стр 357
// Демонстрация наследования,
#include
#include
class base { protected:
int i, j; // Эти члены закрыты в классе base,
// но доступны для класса derived,
public:
void set(int a, int b) { i = a; j = b; }
void show() { cout<class derived : public base { int k;
public:
// Класс derived имеет доступ к членам класса base i и j.
void setk() { k = i*j; }
void showk() { cout<int main() {clrscr();
derived ob;
ob.set(2, 3); // OK, классу derived это позволено.
ob.show(); // OK, классу derived это позволено.
ob.setk() ; ob.showk() ;
getch(); return 0; }
Kerakli klassni ochiq yo'lda (I.E. ommaviy sinf sifatida) meros qilib olganligi sababli, men va J a'zolari asosiy sinfda, setk (qudratli a'zosi) a'zolari kirishga kirishishi mumkinligi sababli ularni. Agar men va J a'zolari asosiy sinfda e'lon qilingan bo'lsa, unda nerved sinfi ularga murojaat qila olmadi va bu dastur tuzilmamaydi.



Yüklə 261,55 Kb.

Dostları ilə paylaş:
1   2   3   4   5




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©genderi.org 2024
rəhbərliyinə müraciət

    Ana səhifə