};
void p(Parent a)
{
a.f();
}
int main()
{
Parent a;
a.f();
p(a);
Child b;
b.f();
p(b);
return 0;
}
A)Dastur qanday natija chiqaradi?
Natija:
B) Agar 7- qatordagi kod virtual void f() ko’rinishida o’zgartirilsa, u holda qanday natija chiqadi?
Natija:
C)Agar 7-qatordagi kod virtual void f() ko’rinishida va 22-qator void p(Parent&a)ga o’zgartirilsa, u holda qanday natija chiqadi?
Natija:
3. Statik va dinamik bog’lanishni tushuntirib bering?
Javobi:
Mos funksiya bosh qismini toppish va funksiya tadbiqini bog’lash ikki sohaga ajratiladi. O’zgaruvchining aniqlangan turi kompilyatsiyalash vaqtida qaysi funksiya mos kelishini hal etadi. Bu static bog’lanish . Kompilyator kompilyatsiyalash vaqtida, argument turiga,parametrlar soniga va tartibiga mos funksiyani topadi. Virtual sunksiya bir nechta kengaytirilgan sinflarda tatbiq qilinishi mumkin. C++ dastur bajarilishi vaqtida, o’zgaruvchi orqali havola qilingan ob’yektning faol sinfi tomonidan tanlovi hal qilingan funksiya tatbiqini dinamik ravishda bog’laydi. Bu dinamik bog’lanish deb ataladi.
4. (Nuqta sinfi) 1-haftaning 5- topshirig’ida berilgan nuqta sinfini qaytadan yozing. Uch o’lchamli fazodagi nuqtani aniqlovchi UchDNuqta nomli sinf yarating.UchDnuqta sinfi Nuqta sinfidan meros olsin. Unda quyidagi a’zolar bo’lsin:
~ z-koordinata o’qini tavsiflovchi z nomli ma’lumot maydoni.
~(0,0,0) nuqtani tavsiflovchi argumentsiz konstruktor.
Do'stlaringiz bilan baham: |