Operatorni haddan tashqari yuklash



Download 18,8 Kb.
Sana23.06.2022
Hajmi18,8 Kb.
#696577
Bog'liq
navruz (1)


Olingan sinf va asosiy sinf
8-bobdagi “Operatorni haddan tashqari yuklash”dagi COUNTPP3 misolini eslaysizmi? Bu dastur umumiy maqsadli hisoblagich o'zgaruvchisi Counteras sinfidan foydalangan . Hisobni 0 yoki ga boshlash mumkin konstruktorlar bilan belgilangan raqamga, ++ operatori bilan ortadi va bilan o'qing get_ count ( ) operatori. Faraz qilaylik, biz Qarshi sinfni xuddi shunday ishlashi uchun uzoq va qattiq mehnat qildik Biz xohlagan tarzda va biz natijalardan mamnunmiz, bir narsadan tashqari. Bizga haqiqatan ham yo'l kerak sonini kamaytiring. Ehtimol, biz bankka kirgan odamlarni hisoblayapmiz va biz ko'paytirmoqchimiz kirganlarida sanoqni, chiqib ketganlarida esa kamaytiradi, shunday qilib sanoq ifodalaydi istalgan vaqtda bankdagi odamlar soni. Qarshi sinfning manba kodiga kamaytirish tartibini kiritishimiz mumkin . Biroq, Biz buni qilishni istamasligimizning bir qancha sabablari bor. Birinchidan, Qarshi sinf juda ishlaydi yaxshi va ko'p soatlik sinov va disk raskadrovkadan o'tdi. ( Albatta bu mubolag'a bu holatda, lekin bu kattaroq va murakkabroq sinfda to'g'ri bo'lar edi.) Agar biz aldashni boshlasak Counter uchun manba kodi bilan , sinov jarayoni yana amalga oshirilishi kerak bo'ladi, va Albatta, biz biror narsani buzishimiz va bizdan oldin yaxshi ishlagan kodni tuzatish uchun soatlab sarflashimiz mumkin
uni o'zgartirdi. Ba'zi hollarda qarshi sinfni o'zgartirmaslikning yana bir sababi bo'lishi mumkin : Biz uning manba kodiga kirish imkoni bo'lmasligi mumkin, ayniqsa u sinfning bir qismi sifatida tarqatilgan bo'lsa kutubxona. (Biz bu masalani 13-bob, “Ko‘p dasturli dasturlar”da batafsil muhokama qilamiz.) Ushbu muammolarni oldini olish uchun biz Counter-ga asoslangan yangi sinf yaratish uchun merosdan foydalanishimiz mumkin modifyingCounteritself . Mana COUNTEN roʻyxati, u yangi CountDn sinfini oʻz ichiga oladi . Qarshi sinfga kamaytirish operatorini qo'shadi : Meros olish


MEROS OLISH
// count.cpp
// Hisoblagich sinf bilan meros
#include
std nom maydonidan foydalanish;
//////////////////////////////////////////////////////// //////////////
sinf hisoblagichi // tayanch sinf
{
himoyalangan: //Izoh: shaxsiy emas
imzosiz int soni; //hisoblash
ommaviy:
Hisoblagich( ): count(0) //no- arg konstruktor
{ }
Hisoblagich( int c): count(c) //1-arg konstruktor
{ }
unsigned int get_ count ( ) const //sonni qaytarish
{ qaytish soni; }
Hisoblagich operatori ++ () // incr count (prefiks)
{ Qaytish hisoblagichi (++ hisoblash); }
};
//////////////////////////////////////////////////////// //////////////
class CountDn : umumiy hisoblagich //hosil qilingan sinf
{
ommaviy:
Hisoblagich operatori -- () // decr count (prefiks)
{ Qaytish Counter(--count); }
};
//////////////////////////////////////////////////////// //////////////
int main( )
{
CountDn c1; // CountDn sinfining c1
cout << “\nc1=” << c1.get_ count( ); //c1ni ko'rsatish
++c1; ++c1; ++c1; //c1 ni 3 marta oshiring
cout << “\nc1=” << c1.get_ count( ); // ko'rsatish
--c1; --c1; // c1ni ikki marta kamaytiring
cout << “\nc1=” << c1.get_ count( ); // ko'rsatish
cout << endl ;
qaytish 0;
}
Qarshi sinf bilan boshlanadi , u (bir kichik istisnodan tashqari, biz buni keyinroq ko'ring) COUNTPP3 da paydo bo'lganidan beri o'zgarmadi. E'tibor bering, soddalik uchun. Biz ushbu dasturni ikkinchisini o'z ichiga olgan POSTFIX dasturida modellashtirmadik postfiks belgisini ta'minlash uchun haddan tashqari yuklangan ++operator.

Download 18,8 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©www.hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish