- MoreEffectiveC++/Basic . . . . 12 matches
class SpecialWidget:public Widget{...}
void update( SpecialWidget *psw);
SpecialWidget sw;
const SpecialWidget& csw = sw;
update(const_cast<SpecialWidget*>(&csw)); // 옳타쿠나
update((SpecialWidget*)&csw); // C style인데 잘 돌아간다.
Widget *pw = new SpecialWidget;
update(const_cast<SpecialWidget*>(pw)); // error!
update( dynamic_cast<SpecialWidget*>(pw)); // 옳다.
void updateViaRef(SpecialWidget& rsw);
updateViaRef(dynamic_cast<SpecialWidget&>(*pw)); // 옳다.
update(const_cast(SpecialWidget*, &sw));
- MoreEffectiveC++/Exception . . . . 5 matches
class SpecialWidget: public Widget { ... };
SpecialWidget localSpecialWidget;
Widget& rw = localSpecialWidget;
다음의 경우 passAndThrowWidget 이 던지는건 Widget 이다. 위에서 언급했듯이 static type으로 예외는 전달된다. 컴파일러는 rw가 SpecialWidget으로의 동작을 전혀 생각하지 않는다.
- EffectiveSTL/Container . . . . 4 matches
class SpecialWidget : public Widget ...
SpecialWidget sw;
vw.push_back(sw) // 어떻게 될까. 복사되면서 SpecialWidget만의 특수성은 제거되고, Widget의 특성만 남게 된다.
vw.push_back(new SpecialWidget); // 잘된다.
Found 3 matching pages out of 7555 total pages (5000 pages are searched)
You can also click here to search title.