3-ma'ruza funktsiyalar va sinflardan foydalanish. Funktsiya deklaratsiyasi. Funktsiya chaqiruvi. Funktsiyalar uchun bekor qilish sarlavha fayli. Standart sarlavha fayllari. Standart sinflardan foydalanish. Reja
-jadval. Oddiy va parametrli manipulyatorlar
Download 137.72 Kb.
|
Лек 3узб
- Bu sahifa navigatsiya:
- Royxat 9.2. Tutqichlar yordamida formatlash
- Guruch. 9.1
9.2-jadval. Oddiy va parametrli manipulyatorlar
Mana ba'zi manipulyatorlardan foydalanishga misol (biz o'zimizdan birini yaratdik): Ro'yxat 9.2. Tutqichlar yordamida formatlash ////////////////////////////////////////////// // Manip.cpp: Ba'zi manipulyatorlarning namoyishi. // #o'z ichiga #pragma hdrstop #include ///////////////////////////////////////////////////////// / // Foydalanuvchi tomonidan belgilangan manipulyator - qo'ng'iroq. // ostream qobig'i (ostream &os) { qaytish os<< '\a'; #pragma argused int main(int argc, char* argv[]) { cout" qo'ng'irog'i; // Qo'ng'iroq manipulyatorini sinab ko'rish. // // Asosiy manipulyatorlarni o'zgartirish. // uzun 1 = 123456; cout<< "Hex: "<< hex<< 1<< end1 <<"Oktyabr: "<< oktabr<< 1<< end1 << "Dekabr: " << dek << 1 << end1; // // Parametrlangan manipulyatorlar. // int h=12, m=5, s=0; // Misoldagi kabi // Format.cpp. cout << "Vaqt" << setfill('0') << setw(2) << h << ':' << setw(2) << m << ':' << setw(2) << s << setfillC ') << end1; qaytish 0; } Ko'rib turganingizdek, o'zingizning oddiy manipulyatoringizni aniqlash juda oson. Bu shunchaki parametr sifatida unga uzatilgan oqimga havolani qaytaruvchi funksiya. P arametrlashtirilgan manipulyatorni yaratish oson emas. Buni qilishning turli usullari mavjud, ammo eng aniqi manipulyatorni effektor sinfi orqali amalga oshirishdir. Fikr shu. Kerakli parametrlarni qabul qiluvchi konstruktor bilan manipulyator uchun o'z sinfingizni belgilashingiz va bu sinf uchun mos keladigan oqimni uzatish (qidirish) operatsiyasini ortiqcha yuklashingiz kerak. Keyin konstruktorni parametrlangan manipulyator deb atash mumkin. Vaqtinchalik ob'ekt yaratiladi, ortiqcha yuklangan operatsiya orqali oqimga chiqariladi va utilizatsiya qilinadi. Quyida o'zining imzosiz argumentini ikkilik shaklda oqimga chiqaradigan manipulyator ko'rsatilgan. #include // sinf effektor . sinf qutisi { int qiymati; ommaviy: Bin(unsigned arg) { val = arg; } friend ostream &operator"(ostreams. Bin); }; // Ikkilik shaklda chiqish raqami. ostream &ooerator<<(ostream &os. Bin b) { int cb = 1; // Sanoq sikllari uchun boshqaruv biti. qil { agar (b.val <0) // Agar val < 0 bo'lsa, u holda yuqori bit = 1. os << 1; boshqa os << 0; } while (b.vai<<= 1, cb<<= 1) ; qaytish OS; } int main() ( imzosiz n = 0x00ff0f34; cout<< "Ba'zi ikkilik: "<< Bin(n)<< end1; qaytish 0; } Guruch. 9.1 Manipulyator o'z argumentini ikkilik shaklda chiqaradi Bayroqlarni formatlash Formatni boshqarish bayroqlari fmtflags (taxallus int) tipidagi o'zgaruvchida saqlanadigan bit maydonlaridir. Ularni o'qish va/yoki o'zgartirish uchun ics sinfining quyidagi a'zo funksiyalaridan foydalanish mumkin: int bayroqlari(), int bayroqlari(int). Parametrsiz bayroqlarning joriy holatini qaytaradi. Belgilangan parametr bilan bayroqlarning yangi qiymatlarini o'rnatadi va ularning oldingi holatini qaytaradi. int setf(int), long setf(int, int). Birinchi shakl argumentda bitlari o'rnatilgan bayroqlarni o'rnatadi . Ikkinchi shakl ikkinchi argumentda bitlari o'rnatilgan bayroqlarni o'zgartiradi . Ushbu bayroqlarning qiymatlari birinchi parametr bilan berilgan. Barcha bayroqlarning oldingi holatini qaytaradi. bekor unsetf(int). Parametrda bitlari o'rnatilgan bayroqlarni tozalaydi. Funktsiyalarga qo'shimcha ravishda siz bayroqlarni boshqarish uchun setiosflags manipulyatorlaridan (bitta parametrli setf() ga o'xshash) va reset-iosflags (unsetf() ga o'xshash) dan foydalanishingiz mumkin. 9.3-jadvalda oqim formatlash bayroqlari tasvirlangan. Download 137.72 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling