bool before(const type_info &ob); const char *name();
Bunda qayta aniqlangan (overloaded) operatorlari [==] va [!=] tiplarini taqqoslash uchun ishlatiladi. Chaqiruvchi obʻyekt parametr sifatida ishlatiladigan obʻyekt (element ob) oldida ketma-ketlik tartibida bo‘lsa before() funksiyasi true qaytaradi. Bu funksiya asosan ichki foydalanish uchun mo‘ljallangan. Uning natija qiymati merosxo‘r yoki sinf iyerarxik bilan hech qanday aloqasi yo‘q. name() funksiyasi tip nomiga ko‘rsatkich qaytadi.
typeid operatoridan foydalanishga bir misol keltiramiz.
1.1-dastur. Tiplarni taqqoslash1
#include "stdafx.h" #include #include using namespace std; class myclass {
// . . .
};
int main(){ int i, j; float f; myclass ob;
cout << "i oʻzgaruvchi tipi: " << typeid(i).name()<cout << "ob oʻzgaruvchi tipi: " << typeid(ob).name()<cout << " i va j tiplar bir xil.\n"; if(typeid(i) != typeid(f))
cout << " i va f tiplar bir xil emas.\n"; system("PAUSE");
return 0;}
1.1 – dastur natijasi. Output
i oʻzgaruvchi tipi: int f oʻzgaruvchi tipi: float
ob oʻzgaruvchi tipi: class myclass i va j tiplar bir xil.i va f tiplar bir xil emas
1.1-dastur tahlili. Dasturda int tipiga oid i va j, float tipida f, myclass tipida ob o‘zgaruvchilari aniqlangan. typeinfo kutubxonasining typeid().name() metodi bilan ularning tiplari aniqlangan. Taqqsolash operatorlari bilan o‘zraguvchilarning
1 Дастур Visual C++ муҳитида тузилган.
tiplari tekshirilgan va natijalar ekranga chiqarilgan. Bu esa tiplar bo‘yicha dastlabki ishlov berish uchun lozim.
Do'stlaringiz bilan baham: |