Posted By: miri (miri) on 'CZprogram' Title: Re: C++, new, operatory... Date: Wed Mar 26 14:52:37 1997 > 2) Kdyz mam dve tridy > a provedu > C1 *c1; C1 *c2 = new C2; > c1 = c2; Si to vyzkousej ;-): Gcc provede prirazeni pointru... Kdyz das *c1=*c2, tak to spadne. Trochu sem si s tim hral, a dosel sem jeste na zajimavejsi vec: class C1 { public: int a; virtual C1& operator = (C1 &s) { printf("operator= C1n"); }; }; class C2 : public C1 { public: int b; virtual C2& operator = (C2 &s) { printf("operator= C2n"); }; }; main() { C1 *c1 = new C2; C1 *c2 = new C2; *c1 = *c2; } Vyleze: operator= C1 PROC? Protoze ten c1 je typu C1 a vypada toa virtual C2& C2::operator = (C2& s) ma jako parametr C2& s, coz neuspeje, takze se pouzije C1::operator=(C1& s)! Jinymy slovy: Ten virtual C2::C2& operator = (C2 &s) VUBEC NEPRETEZUJE virtual C1::C1& operator = (C1 &s), protoze ma jinej typ parametru! Je to fakt, dival sem se do vypisu v assembleru, a C2 ma 2 polozky v VTM. > Krysa MIRI iS HERE iS MIRI iS HERE iS MIRI iS HERE iS MIRI iS HERE iS MIRI