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
bet56/83
Sana08.11.2023
Hajmi1.96 Mb.
#1757524
1   ...   52   53   54   55   56   57   58   59   ...   83
Bog'liq
Obyektga yo`naltirilgan dasturlash tillari

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:  so‘z 
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:
1   ...   52   53   54   55   56   57   58   59   ...   83




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