Prikaz jedne poruke
Stara 15.1.2013, 20:55   #145
M.Silenus
Veteran
 
Član od: 27.12.2005.
Lokacija: Vremenske Grobnice, Hiperion
Poruke: 680
Zahvalnice: 99
Zahvaljeno 124 puta na 82 poruka
Određen forumom Re: How to... C++

Prvo, ako misliš da ti kod proradi, stavi

Kod:
class I : public O {};
Podrazumevano nasleđivanje je private.

I je podklasa od O. Ne možeš da koristiš pokazivač tipa I* da ti pokazuje na objekat tipa O (ok, možeš sa recimo reinterpret_cast, ali to je već varanje ).

Kada bi bacao pokazivač na objekat tipa I (što je izvor memory leak-a, btw), a hvatao O*, sve bi bilo OK.

Please, nikada nemoj da radiš throw new nešto. Bolje uradi nešto ovako:

Kod:
try 
{
  throw I();
} 
catch(O const& i) 
{
  x=3;
}
Takođe bi bilo dobro da uvek stavljaš catch(...).

Pozz!

PS: sorry ako sam preterao, couldn't help it.
M.Silenus je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku M.Silenus na korisnoj poruci:
Lucic Nemanja (16.1.2013)