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;}
Dostları ilə paylaş: