O‘zbekiston respublikasi oliy va o‘rta maxsus ta’lim vazirligi tоshkеnt dаvlаt iqtisоdiyot universitеti
Download 1.96 Mb. Pdf ko'rish
|
Obyektga yo`naltirilgan dasturlash tillari
- Bu sahifa navigatsiya:
- 11.6. Chiqarish operatorini qo‘shimcha yuklash
11.5. Oqimni xolati
Har bir oqim u bilan bog‘liq xolatga ega. Oqimni xolati enum o‘tkazish ko‘rinishida ios sinfida tavsiflanadi. public: enum io_state{ goodbit, //0Х00 xatosi yo‘q eofbit, //0Х01 faylni oxiri 95 failbit, //0Х02 oxirgi operatsiya bajarilmagan badbit, //0Х04 mumkin bo‘lmagan operatsiyani ishlatishni harakat qilish hardfail //0Х08 taqdiriy xato }; ios obyekti bilan oxirgi bajarilgan operatsiyasini natijalarini aniqlovchi bayroqlar state o‘zgaruvchisida mavjud. Shu o‘zgaruvchining qiymatlarini int rdstate() funksiyalari yordamida olish mumkin. Bundan tashqari, oqimlar xolatini quyidagi funksiyalar orqali tekshirish mumkin: int bad(); 1, agar badbit yoki hardfail int eof(); 1, agar eofbit int fail(); 1, agar failbit, badbit yoki hardfail int good(); 1, agar goodbit Agarda >> operatsiya ma’lumotlarni yangi tiplari uchun ishlatilsa, unda uni qayta yuklashda tegishli tekshirishlarni ko‘zda tutmoq lozim. Funksiya-komponenta cout.fill va manipulyator setw () #include #include void main(void) { cout << "Axborot jadvili " << endl; cout.fill (' . '); cout << "Kompaniya soxasi " << setw(20) << 10 << endl; cout << "Kompaniya daromadi va zarari " << setw(12) << 11 << endl; cout << "Kompaniya raxbariyati " << setw(14) << 13 << endl; } 11.6. Chiqarish operatorini qo‘shimcha yuklash Chiqarish operatori ostream. sinfi obyektiga ilova qaytaruvchi binar operatordir. Umumiy holda qo‘shimcha yuklangan chiqarish operatori ta’rifi quyidagi ko‘rinishga ega: ostream& 96 operator <<( ostream& os, const ClassType &object ) { // obyektni tayyorlash uchun kod // a’zolar xaqiqiy soni os << // ... // ostream obyekti qaytariladi return os; } Bu ta’rif birinchi argumenti ostream obyektiga ilova ikkinchisi odatda konstant biror sinf obyektiga ilova. Qaytariluvchi qiymat ostream obyektiga ilova. Birinchi argument ilova bo‘lgani uchun, chiqarish operatori sinf a’zosi sifatida emas oddiy funksiya sifatida ta’riflanishi zarur. Agar funksiya yopiq sinf a’zolariga murojaat qilishi zarur bo‘lsa do‘stona deb e’lon qilinishi zarur. 1. Chiqarish operatorini qo‘shimcha yuklash class WordCount { friend ostream& operator<<( ostream&, const WordCount& ); public: WordCount( string word, int cnt=1 ); // ... private: string word; int occurs; }; ostream& operator <<( ostream& os, const WordCount& wd ) { // format: os << "< " << " > " > " << wd.word; return os; } 97 2. Yuklangan chiqarish operatoriga ega bo‘lgan sinfdan foydalanish. #include #include "WordCount.h" int main() { WordCount wd( "sadness", 12 ); cout << "wd:\n" << wd << endl; return 0;} Qo‘shimcha yuklangan chiqarish operatorini ofstream sinfi obyektlariga ham qo‘llash mumkin. Quyidagi misolda WordCount sinfi chiqarish operatori chaqiriladi: #include #include "WordCount.h" int main() { ofstream oFile( "word.out" ); WordCount artist( "Renoir",12); oFile << artist;} Download 1.96 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling