Nazorat uchun savollar 1. Nima uchun avval ajdod sinf konstruktorlari chaqirilib, so‘ngra avlod sinf
konstruktori chaqiriladi?
2. Nima uchun destruktorlar konstruktorlarga nisbatan teskari tartibda
chaqiriladi?
3. Vorislikda ajdod sinf spetsifikatori sifatida protected ko‘rsatilishi
mumkinmi?
4. Sinflar bibliotekasini qurishda vorislikdan qanday foydalaniladi?
5. Хususiy deb e’lon qilingan komponentalarga boshqa sinf usullari orqali
murojaat qilish mumkinmi?
76
9 bob. STANDART AMALLARNI QO‘SHIMCHA YUKLASH 9.1. Qo‘shimcha yuklash ta’rifi Standart amallarni (masalan +) qo‘shimcha yuklash biror sinf bilan birga
qo‘llashda mazmunini o‘zgartirishdan iboratdir.
Standart amallarni qo‘shimcha yuklash maxsus funksiya – komponenta kiritish
yo‘li bilan amalga oshiriladi. Qo‘shimcha yuklash til standartiga asosan amalga
oshiriladi, amallar belgisi va operandlar soni o‘zgarmaydi.
Amallarni qo‘shimcha yuklash uchun quyidagi ta’rifdan foydalaniladi:
( )
quyidagi amallarni qo‘shimcha yuklash mumkin:
+ - * / % ^ & | ~ !
= < > += -= *= /= %= ^= &=
|= << >> >>= <<= == != <= >= &&
|| ++ -- [] () new delete
Bu amallar ustivorligi va ifodalar sintaksisini o‘zgartirish mumkin emas.
Masalan unar amal % yoki binar ! amalni kiritish mumkin emas. Funksiya amal har
qanday funksiya kabi ta’riflanadi va chaqiriladi.
Standart tiplar uchun to‘rt amal ("+", "-", "*" i "&") ham unar ham binar amal
sifatida ishlatiladi va qo‘shimcha yuklanadi.
Хamma qo‘shimcha yuklangan amallar uchun operator() amalidan tashqari, ko‘zda
tutilgan argumentlardan foydalanish mumkin emas.
Amallar xossalaridan ba’zilaridan foydalaniladi. Хususan operator=, operator [
], operator ( ) va operator-> nostatik komponenta – funksiya bo‘lishi lozim.
Operator - funksiya yoki sinf komponentasi bo‘lishi kerak yoki juda bo‘lmasa
bitta parametri sinf obyekti bo‘lishi kerak (new va delete amallarini qo‘shimcha
yuklovchi funksiyalar uchun bu shart emas).
Operator - funksiya, birinchi parametri asosiy turga tegishli bo‘lsa, funksiya-
komponenta bo‘lolmaydi.
C++tilida quyidagi amallarni qo‘shimcha yuklash mumkin emas:
77
. sinf obyekti a’zosiga murojaat;
.*
ko‘rsatkich orqali murojaat;
?:
shartli amal;
:: ko‘rinish soxasini ko‘rsatuvchi amal;
sizeof hajmni hisoblash amali;
# preprotsessor amali.