• Здраво и добредојдовте на форумот на IT.mk.

    Доколку сеуште не сте дел од најголемата заедница на ИТ професионалци и ентузијасти во Македонија, можете бесплатно да се - процесот нема да ви одземе повеќе од 2-3 минути, а за полесна регистрација овозможивме и регистрирање со Facebook и Steam.

dynamic_cast i reinterpret_cast kaj apstraktni klasi

  • Ја почнал/а темата
  • #1

mac-ufs

Intern
23 април 2008
611
19
svakja li nekoj kako se upotrebuvaat ovie operatori...mislam znam definicija ali ednostavno ne mozam da svatam kako se koristat

aj nekoj ako moze so nekoe pomalo primerce da mi objasni sto znacat ovie operatori
 

lizardlabs

Intern
23 август 2007
58
1
dynamic_cast se koristi kako bezbeden nacin za konverzija na pokazuvaci ili referenci na izvedenata klasa vo pokazuvac ili referenca na osnovnata klasa, no sepak objektot da ostane validen objekt od izvedenata klasa (polimorfizam). Dokolku ovaa konverzija ne e vozmozna se "frla" bad_cast exception. Pr:
Код:
class CBase { };
class CDerived: public CBase { };

CBase b; CBase* pb;
CDerived d; CDerived* pd;

pb = dynamic_cast<CBase*>(&d);     // ok: derived-to-base
pd = dynamic_cast<CDerived*>(&b);  // wrong: base-to-derived
Za konverzija na validniot objekt od osnovnata vo objekt vo izvedenata klasa treba se koristi static_cast


reinterpret_cast se koristi za konverzija na bilo koj tip na pokazuvac vo bilo koj drug. Ne se pravi nikakva validacija. Pr:
Код:
class A {};
class B {};
A * a = new A;
B * b = reinterpret_cast<B*>(a); // ke mu dojde kako B* b = (B*) a;
Ova e najcestata primena na ovie operatori co C++.
 
  • Ја почнал/а темата
  • #3

mac-ufs

Intern
23 април 2008
611
19
za reinterpret_cast mi e jasno za ova ke mi stane samo da ja rastumacam u zadaca...u sekoj slucaj fala za primerov pomogna :D
 

Нови мислења

Последни Теми

Статистика

Теми
43,545
Мислења
822,960
Членови
28,057
Најнов член
Iamdantes10
На врв Дно