16-ma’ruza. Obyektga yo’naltirilgan dasturlashda parametrlash. Amallarni qayta yuklash. Funksiya shablonlari va ulardan foydalanish
Amallarni qayta yuklaganda, quyidagi cheklovlarni hisobga olish kerak:
1) Quyidagi amallarni qayta yuklash taqiqlanadi:
sizeof() – argument oʻlchamini aniqlash;
. (nuqta) – obyekt komponentlarini tanlash;
?: – shart amali;
:: – koʻrinish sohasini aniqlash;
.* – koʻrsatkich orqali sinf komponentini tanlash;
# va ## – preprotsessor amallari.
2) Amallarni faqat yangi ma’lumotlar turi uchun qayta yuklash mumkin. Oʻrnatilgan turdagi amalni qayta yuklay olmaysiz. C++ da enum, union, struct va class konstruksiyalari yordamida yangi turdagi ma’lumotlar shakllanishi mumkin.
3) Qayta yuklangan amalning ustuvorligini va operand-lar sonini oʻzgartirish mumkin emas. unar amal bitta ope-rand, binar – ikkita operandga ega boʻlishi kerak; standart parametrlarga ruxsat berilmaydi. Operandlarning aniq soniga ega boʻlmagan yagona amal bu funksiyani chaqirish operatsiyasi (), ., “+”, “-“, “*”, “&” amallari ham unar, ham binar sifatida qayta yuklanishi mumkin.
4) Amallarni mustaqil tashqi funksiyalar sifatida (faqat bu qayta yuklash metodi enum uchun ruxsat etiladi) yoki sinf metodlari sifatida qayta yuklanishi mumkin.
Toʻrtta amal faqat sinf metodlari sifatida qayta yuklanishi mumkin:
- oʻzlashtirish(=);
- funksiyani chaqirish ();
- indekslash [];
- koʻrsatkich orqali kirish ->;
Asosan, bu amallarni enum konstruksiyasi uchun qayta yuklash mumkin emas.
5) Agar amal sinf metodi sifatida qayta yuklangan boʻlsa, u holda chap (yoki faqat) argument majburiy ravishda amal qayta yuklangan sinf obyekti boʻladi.
Funksiya-amalning prototipi quyidagicha koʻrinishda boʻladi:
tip operator@(parametrlar roʻyxati):
Bu holatda @ – amal belgisi. operator soʻzi kalit soʻz boʻlib, faqat operatsiya chaqiruvining ta’rifida yoki funk-sional shaklida ishlatilishi mumkin.
Dostları ilə paylaş: |