1-ma’ruza. Noma'lum nomlarning noma'lum turlari va maydoni Ma’ruza rejasi


bool operator = (const type_info &ob)



Download 55,37 Kb.
bet3/14
Sana06.01.2022
Hajmi55,37 Kb.
#321298
1   2   3   4   5   6   7   8   9   ...   14
Bog'liq
1-mavzu matni

bool operator = (const type_info &ob);

bool operator !=(const type_info &ob);

bool before(const type_info &ob);

const char *name();
Qayta yuklangan solishtirish operatorlar "= = "va"!= "turlarini solishtirish uchun ishlatiladi. typeid operatoridan foydalanishning oddiy misolini ko'rib chiqamiz:

// typeid operatoridan foydalanish misoli.

#include

#include


using namespace std;
class myclass {

// . . .


};

int main()

{

int i, j;



float f;

myclass ob;

cout << " Argumentlar turi i:"<< typeid(i).name();

cout << endl;

cout < < " Argumentlar turi f:" << typeid(f).name();

cout << endl;

cout < < " Argumentlar turi ob:" << typeid(ob).name();

cout << "\n\n";

if(typeid(i) == typeid(j))

cout <<”\n i va j o'zgaruvchilari bir xil."<

if(typeid(i) != typeid(f))

cout <”\n i va f o'zgaruvchilari turlari bir xil emas.";

return 0;

}

Ushbu dasturni amalga oshirishda bunday natijalar olingan.



Argumentlar turi i: int

Argumentlar turi f: float

Argumentlar turi ob: sinf sinf sinf sinf

i va j o'zgaruvchilari bir xil.

i va f o'zgaruvchilari turlari bir xil emas.

typeid operatorini ko’proq merosxo’r sinflar bilan, poliform, virtual va shablon fynktsiyalar bilan ish yuritishni ko’rsatkichlar yoki havolalar orqali tashkil qilganda ishlatish bit muncha qulaylik yararadi. Ya’ni typeid orqali ko’rsatkich ko’rsatayotgan real ob’ektning turini aniqlab olishimis mumkin.

Keyingi misolda odin standart tipga ega bo’lgan o’zgaruvchini tipini aniqlaymiz, keyin asos sinf va meros simf ob’ektlariga ko’rsatayotgan k’rsatkich orqali ob’ektlarni tipini aniqlaymiz.


/ * typeid operatorini polimorf sinflarning ierarxiyasiga qo'llash misoli.*/

#include

#include

using namespace std;

class Base {

virtual void f () {}; / / base sinfini polimorf qilish

// . . .

};

class Derived1: public Base {



// . . .

};

class Derived2: public Base {



// ...

};

int main(){



Base *p, baseob;

Derived1 ob1;

Derived2 ob2;

p= &baseob;

cout < "\n Ob`ekt tipi - ";

cout << typeid(*p).name() << endl;

p = &ob1;

cout < "\n Ob`ekt tipi - ";

cout << typeid(*p).name() << endl;

p = &ob2;

cout < "\n Ob`ekt tipi - ";

cout << typeid(*p).name() << endl;

return 0;}

Ushbu dasturning natijalari quyidagicha:


Ob`ekt tipi - Base

Ob`ekt tipi - Derived1

Ob`ekt tipi - Derived2

Quyida berilgan misolda typeid() operatori yordamida whattype() funktsiyasiya parametri sifatida qaysi sinfga mansub ob’ekt uzatlganini (foyadalanuvchi tipini) real vaqtda aniqlab, ekranga chop etamiz:

/ *

typeid operatorini mos yozuvlar parametriga qo'llash.*/


#include

#include


using namespace std;
class Base {

virtual void f () {}; / / base sinfini polimorf qilish

// . . .

};

class Derived1: public Base {



// . . .

};

class Derived2: public Base {



// . . .

};
/ * Biz typeid() operatordan foydalanishni namoyish qilamiz*/


void WhatType(Base &ob)

{

cout <”\n ob parametrining tipi - ";



cout << typeid(ob).name() << endl;

}
int main()

{

int i;


Base baseob;

Derived1 obi;

Derived2 ob2;

WhatType(baseob);

WhatType(ob1);

WhatType(ob2);

return 0;

}
Ushbu dastur bunday natijalarni ishlab chiqaradi.


ob parametrining tipi – Base

ob parametrining tipi - Derived1

ob parametrining tipi – Derived2
Operator typeid qo'llash yana bir turi bor, argument sifatida o’zgaruvchi nomini o’rniga C++ tilinig acosiy turlaridan birinig nomi ko’rsatiladi. Uning formati shunday.


Download 55,37 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   ...   14




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish