????3.2 ?????????????????е??麯??????

???????????麯???????????????????????????б???????????????????????????“??”???????????????????????????????????“???”?????磺

class A
{
public:
A() { foo();} // ????????????ζ???A::foo()???????
~A() { foo();} // ???
virtual void foo();
};
class B: public A
{
public:
virtual void foo();
};
void bar()
{
A * a = new B;
delete a;
}

????????????delete a?????????B::foo()???????????????????????new B?????A????????????????????A????????У??????????A::foo()??????B::foo()??

????3.3 ?????е??麯??

??????е??????????????麯??????????????е??麯??(??????????????)???????е????????????ж???????????????麯???????????????Щ????????????????????????и?????麯???????????????????麯????????????????????麯??????????????????????麯?????????С?????????????麯????

????3.4 ?????????麯??

??????????????????????????????????????????????????в???????????????????????????????????????????е??麯????????????????????е??麯???????????????????????????????????????????????

???????????[2]??Factory Method???????Creator??factoryMethod()???麯??????????override??????????????????Product??????????Product???????AnOperation()??????á??????AnOperation()???????Product????в????????Product???????ж?????麯??????

??????????????????????????????????????A???????????Σ??????????std::vector[url=]??????????????в?????????????????????????????????е?????в?????????????????????cast??????????????????????????????????????????????????????y????“????????”?????virtual??

????????У?????????????????????????????????????????“????????????????????????????в?????????????????????”????仰?????????????“???????????????麯??????????override??”??