ࡱ> q`bjbjqPqP7::5@%&&&:jcjcjc8cd:BhVeVe"xexexeWfWfWf1333333$h^W&WfSfWfWfWfWxexe-{-{-{Wf Rxe&xe1-{Wf1-{-{nu"& xeJe 0jc?s} ݟT0Bp?s<p@ŝŝPp&WfWf-{WfWfWfWfWfWW{wWfWfWfBWfWfWfWf:dd/6,:6::: 8@BC0;L=>5 ?5@5:@KB85 <5B>4>2 >=OB85 28@BC0;L=>3> <5B>40  :0G5AB25 ?@8<5@0 ?@8<5=5=8O 28@BC0;L=>3> ?5@5:@KB8O <5B>4>2 @0AA<>B@8< A;54CNICN A8BC0F8N. ;O @5H5=8O =5:>B>@>9 7040G8 1K; @07@01>B0= :;0AA A, 8<5NI89 =5:>B>@K5 ?>;O 40==K5 8 <5B>4K. ;O >15A?5G5=8O DC=:F8>=0;L=KE B@51>20=89 7040G8 1K;8 B0:65 @07@01>B0=K =5:>B>@K5 DC=:F88, :>B>@K5 ?>;CG0;8 >1J5:BK :;0AA0 A 8 2K7K20;8 =5>1E>48<K5 <5B>4K MB8E >1J5:B>2. -B8 DC=:F88 1C45< =07K20BL :;85=B0<8 :;0AA0 A. 1I55 C?@02;5=85 @5H5=85< 7040G8 2K?>;=O;0 =5:>B>@0O DC=:F8O, @>;L :>B>@>9 2 =0H5< A;CG05 1C45B 83@0BL DC=:F8O main. '5@57 =5:>B>@>5 2@5<O 1K;8 AD>@<C;8@>20=K =>2K5 B@51>20=8O, 4;O C4>2;5B2>@5=8O :>B>@KE 1K;0 2K?>;=5=0 <>48D8:0F8O =0?8A0==>9 ?@>3@0<<K. ;02=>5 CA;>285 <>48D8:0F88 A>AB>O;> 2 B><, GB> :;0AA A 8 53> :;85=BK <5=OBLAO =5 4>;6=K. ;O ?@>2545=8O <>48D8:0F88 =0 MB8E CA;>28OE 1K; @07@01>B0= :;0AA B, C=0A;54>20==K9 >B :;0AA0 A. '0ABL <5B>4>2 :;0AA0 A 1K;8 ?5@5:@KBK 2 :;0AA5 B 4;O ?>445@6:8 =>2KE B@51>20=89. # :;0AA0 B ?>O28;8AL A2>8 :;85=BK, ACI5AB25==K< 1K;> B>, GB> AB0@K5 :;85=BK :;0AA0 A 4>;6=K B5?5@L C<5BL @01>B0BL =5 B>;L:> A >1J5:B0<8 :;0AA0 A, => 8 A >1J5:B0<8 :;0AA0 B.  :0G5AB25 :;0AA0 A 1C45< @0AA<0B@820BL A;54CNI89 :;0AA: class A { private: int a; public: A(): a(0) {} A(int _a): a(_a) {} A(const A& _ao) { a = _ao.a; } ~A() { a = -1; } long f1 (double d) { cout << "A::f1 " << endl; return 0; } }; ;0AA A >1JO2;5= A 548=AB25==K< 70:@KBK< ?>;5< int a.  :;0AA5 A O2=> >?8A0=K (8 >?@545;5=K) =5>1E>48<K5 :>=AB@C:B>@K 8 45AB@C:B>@ 8 <5B>4 f1. 50;870F8O MB>3> <5B>40 (8 ?>A;54CNI8E <5B>4>2 ?@8<5@0) 4;O =0A A<KA;0 =5 8<55B, ?>MB><C 2A5, GB> >=8 45;0NB  MB> A>>1I05B > B><, GB> >= 1K;8 2K720=K. %>BO ?@8<5@ 4>AB0B>G=> 8A:CAAB25==K9, >= ?>72>;8B ?@>45<>=AB@8@>20BL 2A5 =5>1E>48<K5 =0< A2>9AB20 28@BC0;L=KE <5B>4>2.  :0G5AB25 ?5@2>3> :;85=B0 2>7L<5< DC=:F8N fa: void fa(A& ao) { ao.f1(4); } 0 C?@02;5=85 ?@>3@0<<>9 ?@54AB028< 2 2845: int main() { A a1(1); fa(a1); } $C=:F8O fa ?@8=8<05B AAK;:C =0 >1J5:B :;0AA0 A 8 2K7K205B G5@57 MB>B >1J5:B <5B>4 f1. !AK;:0 =0 >1J5:B =5 :>=AB0=B=0O ?>B><C, GB> 4;O C?@>I5=8O ?@8<5@0 <K =5 AB0;8 >1JO2;OBL <5B>4 f1 :>=AB0=B=K<.  DC=:F88 main >1JO2;5= >1J5:B :;0AA0 A 8 2K?>;=O5BAO 2K7>2 DC=:F88 fa. 5B@C4=> 4>3040BLAO, GB> @57C;LB0B @01>BK B5AB0 1C45B A;54CNI89: A::f1 > =0H59 AE5<5 87 :;0AA0 A >B:@KB> C=0A;54>20= :;0AA B A> A2>8< 70:@KBK< ?>;5< int b, =5>1E>48<K<8 :>=AB@C:B>@0<8 8 45AB@C:B>@><.  :;0AA5 B <5B>4 f1 ?5@5:@KB B0:, :0: MB> ?>:070=> 2 ;8AB8=35: class B: public A { private: int b; public: B(): A(0), b(0) {} B(int _a, int _b): A(_a), b(_b) {} B(const B& _bo): A(_bo) { b = _bo.b; } ~B() { b = -1; } long f1 (double d) { cout << "B::f1 " << endl; return 0; } };  DC=:F88 main 4>1028< >1JO2;5=85 >1J5:B0 :;0AA0 B 8 2K7>2 AB0@>3> :;85=B0 fa 4;O MB>3> >1J5:B0: int main() { A a1(1); fa(a1); B b1(1,2); fa(b1); } "0:>9 2K7>2 =5 2K7>25B >H81:8: DC=:F8O fa 1C45B 2K?>;=OBLAO, B.:. AAK;:5 =0 >1J5:B ?@54:0 <>6=> ?@8A20820BL >1J5:B ?>B><>:. > @57C;LB0B 1C45B A;54CNI89: A::f1 A::f1 ".5. ?>;CG82 AAK;:C =0 >1J5:B :;0AA0 B, DC=:F8O fa 2A5 @02=> AG8B05B 55 AAK;:>9 =0 >1J5:B :;0AA0 A 8 2K7K205B 4;O =53> <5B>4 f1 :;0AA0 A. 0< 65 =04>, GB>1K 2 DC=:F88 fa 4;O >1J5:B0 :;0AA0 A 2K7K20;AO <5B>4 :;0AA0 A, 0 >1J5:B0 :;0AA0 B 2K7K20;AO <5B>4 :;0AA0 B? >AB8GL MB>3> <>6=>, 5A;8 2 :;0AA5 A <5B>4 f1 >1JO28BL :0: 28@BC0;L=K9: virtual long f1 (double d) { cout << "A::f1 " << endl; return 0; }  MB>< A;CG05 <K ?>;CG8< =C6=K9 =0< @57C;LB0B: A::f1 B::f1 "0:8< >1@07><: 8@BC0;L=K<8 (28@BC0;L=> ?5@5:@KBK<8) <5B>40<8 =07K205BAO F5?>G:0 ?5@5:@KBKE 2 ?>B><:0E <5B>4>2, 4;O :>B>@KE ?5@2>5 >1JO2;5=85 <5B>40 2 :;0AA5 ?@54:5 A45;0=> A> A?5F8D8:0B>@>< virtual. @8 2K7>25 28@BC0;L=>3> <5B>40 G5@57 AAK;:C (8;8 C:070B5;L) =0 >1J5:B, B8? 2K7K205<>3> 28@BC0;L=>3> <5B>40 >?@545;O5BAO =5 B8?>< AAK;:8 (8;8 C:070B5;O), G5@57 :>B>@K9 >= 2K7K205BAO, 0 B8?>< >1J5:B0, ?>4AB02;5==>3> ?>4 MBC AAK;:C (8;8 C:070B5;L). A>15==>AB8 28@BC0;L=>3> ?5@5:@KB8O <5B>4>2 CABL B5?5@L 2 :;0AA5 A 1K; >1JO2;5= 5I5 <5B>4 f11: class A { . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . virtual long f1 (double d) { cout << "A::f1 " << endl; return 0; } long f11(double d) { cout << "A::f11 " << endl; return 0; } }; :>B>@K9 B>65 2K7K20;AO 2 DC=:F88 fa: void fa(A& ao) { ao.f1(4); ao.f11(4); }  ?CABL 2 :;0AA5 B MB>B <5B>4 1K; ?5@5:@KB A;54CNI8< >1@07><: class B : public class A { . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . long f1 (double d) { cout << "B::f1 " << endl; return 0; } long f11(int i) { cout << "B::f11 " << endl; return 0; } }; @8 B0:>< 20@80=B5 :>40 @57C;LB0B B5AB0 1C45B B0:8<: A::f1 A::f11 B::f1 A::f11 A;8 65 <K 2=>2L ?>?@>1C5< ?5@5:@KBL <5B>4 f11 28@BC0;L=> (B.5. >1JO28< 53> 2 :;0AA5 A :0: virtual, B> @57C;LB0B B5AB0 >AB0=5BAO ?@56=8<: A::f1 A::f11 B::f1 A::f11 ".5. <5B>4 f11 2 :;0AA5 B 28@BC0;L=> =5 ?5@5:@K;AO. 8@BC0;L=> =5 ?5@5:@K;AO ?>B><C, GB> C =53> =5 B>G=>5 A>2?045=85 B8?0 ?0@0<5B@0 A >4=>8<5==K< 28@BC0;L=> ?5@53@C605<K< <5B>4>< ?@54:0. A;8 65 <K ?>?@>1C5< >1JO28BL 2 :;0AA5 A <5B>4 f12: long f12(double d) { cout << "A::f12 " << endl; return 0; } (:>B>@K9 B0:65 1C45B 2K7K20BLAO 2 DC=:F88 fa) 8 ?5@5:@KBL 53> 2 :;0AA5 B A B>G=K< A>2?045=85< B8?0 ?0@0<5B@0, => A 4@C38< B8?>< 2>72@0I05<>3> 7=0G5=8O: double f12(double d) { cout << "B::f12 " << endl; return 0; }, B> B0:>5 ?5@5:@KB85 A@01>B05B 8 B5AB 2K40AB @57C;LB0B: A::f1 A::f11 A::f12 B::f1 A::f11 A::f12 45AL =04> >B<5B8BL, GB> 5A;8 1K f12 =5 ?5@5:@K20;0AL, 0 ?5@53@C60;0AL :0: >1KG=0O DC=:F8O (8;8 :0: <5B>4K >4=>3> :;0AA0), B> B0:0O ?>?KB:0 ?@825;0 1K : >H81:5 :><?8;OF88 B8?0: error C2556: 'double f12(double)' : overloaded function differs only by return type from 'long f12(double)' (MS VS 2005) A;8 65 2=>2L ?>?@>1C5< A45;0BL ?5@5:@KB85 f12 28@BC0;L=>9 (>1JO28< 55 2 :;0AA5 A :0: virtual), B> =0 D075 :><?8;OF88 <K ?>;CG8< >H81:C B8?0: error C2555: 'B::f12': overriding virtual function return type differs and is not covariant from 'A::f12' MS VS 2005) ".5. 4;O 28@BC0;L=>3> ?5@5:@KB8O =5>1E>48<> =5 B>;L:> B>G=>5 A>2?045=85 B8?>2 ?0@0<5B@>2, => 8 A>2?045=85 8;8 :>20@80=B=>5 A>>B25BAB285 B8?>2 2>72@0I05<KE 7=0G5=89. >20@80=B=>5 A>>B25BAB285 B8?>2 0;55 2 =0H ?@8<5@ 4>1028< =5:>B>@K9 D8:B82=K9 :;0AA F 87 :>B>@>3> 2K2545< :;0AA FD class F { }; class FD : public F { }; F f; FD fd;  :;0AA A 4>1028< <5B>4K f13 8 f14, 2>72@0I0NI85 AAK;:C 8 C:070B5;L =0 >1J5:BK :;0AA0 F: class A { . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . virtual long f1 (double d) { cout << "A::f1 " << endl; return 0; } virtual long f11(double d) { cout << "A::f11 " << endl; return 0; } virtual F& f13(double d) { cout << "A::f13 " << endl; return f; } virtual F* f14(double d) { cout << "A::f14 " << endl; return &f; } }; :>B>@K5 B>65 2K7K20NBAO 2 DC=:F88 fa.: void fa(A& ao) { ao.f1(4); ao.f11(4); ao.f13(4); ao.f14(4); } 0;55 2 :;0AA5 B MB8 <5B>4K ?5@5:@>5< A;54CNI8< >1@07><: class B : public class A { . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . long f1 (double d) { cout << "B::f1 " << endl; return 0; } long f11(int i) { cout << "B::f11 " << endl; return 0; } FD& f13(double d) { cout << "B::f13 " << endl; return fd; } FD* f14(double d) { cout << "B::f14 " << endl; return &fd; } }; 0?CA: B5AB0 ?>:065B, GB> 2 MB>< A;CG05 28@BC0;L=>5 ?5@5:@KB85 <5B>4>2 f13 8 f14 ?@>945B ?@028;L=>: A::f1 A::f11 A::f13 A::f14 B::f1 A::f11 B::f13 B::f14  MB> 7=0G8B, GB> ?@8 28@BC0;L=>< ?5@5:@KB88 <5B>4>2 B8?K 2>72@0I05<KE 7=0G5=89 <>3CB >B;8G0BLAO, => ?@8 MB>< >=8 4>;6=K 1KBL C:070B5;O<8 8;8 AAK;:0<8 =0 >1J5:BK :;0AA>2, A2O70==KE =0A;54>20=85< B0:, :0: MB> ?>:070=> 2 ?@8<5@5. "0:85 B8?K =07K20NB :>20@80=B=K<8 (8;8 :>20@80=B=> A>>B25BAB2CNI8<8). "0:8< >1@07><, >A>15==>ABL 28@BC0;L=>3> ?5@5:@KB8O <5B>4>2 A>AB>8B 2 B><, GB>: 8@BC0;L=> ?5@5:@K20NBAO B>;L:> B>G=> ?5@5:@KBK5 <5B>4K ?@54:0. ">G=>5 ?5@5:@KB85 <5B>40 2 :;0AA5 ?>B><:5 >7=0G05B: B>G=>5 A>2?045=85 :>;8G5AB20 8 B8?>2 ?0@0<5B@>2 ?5@5:@K20NI53> 8 ?5@5:@K205<>3> <5B>4>2 157 CG5B0 ?@82545=8O B8?>2; B>G=>5 A>2?045=85 8;8 :>20@80=B=>5 A>>B25BAB285 B8?>2 2>72@0I05<KE 7=0G5=89. "8?K 2>72@0I05<KE 7=0G5=89 <5B>4>2 :>20@80=B=> A>>B25BAB2CNB, 5A;8: >10 O2;ONBAO C:070B5;O<8 8;8 AAK;:0<8 =0 >1J5:BK :;0AA>2; :;0AA C:070B5;O 8;8 AAK;:8, 2>72@0I05<>3>,8<>x2  68DTpxžh1hGh2B*CJOJQJ^JaJmH phsH hn]h7\Ih5imH sH h5i hGhYhYmH sH hYh|@ h|@h|@ h|@hoh68 h|@h f h|@h{%J#h|@h'6w5CJ(OJQJ^JaJ(h/F5CJ(OJQJ^JaJ(#h|@h{%J5CJ(OJQJ^JaJ(">vx X|< $`a$gd\ 7$8$H$gd2 $`a$gdn] $`a$gd4`gd2Cgd{%J$a$gd{%Jd&~"8>JLN~wslslelelelslsl h|@hHf h|@h\ hn] h|@h2 h|@h2CJOJQJ^JaJ1hGh2B* CJOJQJ^JaJmH phsH (hGh2CCJOJQJ^JaJmH sH (hGh\ CJOJQJ^JaJmH sH 1hGh2B*CJOJQJ^JaJmH phsH (hGh2CJOJQJ^JaJmH sH '8:HJNbr.28L\rvTxzleeee h|@h/v(hGh?zCJOJQJ^JaJmH sH hxE hxEhn]hHCJOJQJ^JaJ h|@hHCJOJQJ^JaJ(hGhHCJOJQJ^JaJmH sH 1hGhHB*CJOJQJ^JaJmH phsH  h|@h2C h|@hH h|@h?zhn] h|@h\ h|@hHf 02HL`rvx"$ 7$8$H$gd?z $`a$gd?z$a$gd/v $`a$gdPs$a$gdxE $`a$gdxE 7$8$H$gdH`gd2C "$&BDP`8>HN 4DZftz|@ظqjj h|@h.P1hGh?zB* CJOJQJ^JaJmH phsH (hGh?zCJOJQJ^JaJmH sH 1hGh?zB*CJOJQJ^JaJmH phsH  h|@h?zCJOJQJ^JaJh7\IhxE h|@h/v h|@h?zh|@h/vB*ph)h|@h/vB*CJOJQJ^JaJph)2|tz|>@VZn$a$gd.P 7$8$H$gd.P $`a$gdPs 7$8$H$gd?z@F  !!!4!"""ѼshshaaZI h|@hlCJOJQJ^JaJ h|@hHf h|@hlh|@h.PB*ph)h|@h.PB*CJOJQJ^JaJphhxE h|@h.P h|@h?z h|@h?zCJOJQJ^JaJ h|@h.PCJOJQJ^JaJ(hGh.PCJOJQJ^JaJmH sH (hGh?zCJOJQJ^JaJmH sH 1hGh?zB*CJOJQJ^JaJmH phsH   ""8#:########J%:'$$If^a$gdtS$ & F $If^a$gdtS$a$gd_ 7$8$H$gdl $`a$gd.P$a$gd.P"""""##*#8#:#V########### $ $\$p$8%Ѹѭ{tm[L[L[h7\I6CJOJQJ^JaJ#h|@hv6CJOJQJ^JaJ h|@hv h|@h.P h|@hlh|@h_B*ph)h|@h_B*CJOJQJ^JaJphh\) h|@h_hGh.PmH sH 1hGhlB* CJOJQJ^JaJmH phsH (hGhlCJOJQJ^JaJmH sH 1hGhlB*CJOJQJ^JaJmH phsH 8%F%J%`%% &8'<'>'V'''''( (((((((׾wbIbIb1hGh_B*CJOJQJ^JaJmH phsH (hGh_CJOJQJ^JaJmH sH (hGh= sCJOJQJ^JaJmH sH 1hGh= sB*CJOJQJ^JaJmH phsH  h|@h= s h|@h.Ph68 h|@hl h|@hv#h|@h'<6CJOJQJ^JaJ#h|@hv6CJOJQJ^JaJ,h|@hv5B*CJOJQJ^JaJph3f:'<'>'''(((((&)))}}}t}} 7$8$H$gd_ 7$8$H$gd= sgdv $`a$gd.Pgkd$$Ifl$$ t0644 la (( ))&)()0):)F)N)P)d)v))))))))))Ѹѣu\KD=D=D h|@hO h|@h= s h|@h= sCJOJQJ^JaJ1hGh= sB* CJOJQJ^JaJmH phsH (hGh\)CJOJQJ^JaJmH sH 1hGh= sB*CJOJQJ^JaJmH phsH (hGh= sCJOJQJ^JaJmH sH 1hGh_B*CJOJQJ^JaJmH phsH (hGh_CJOJQJ^JaJmH sH 1hGh_B* CJOJQJ^JaJmH phsH ))))**0*H*L*N****++,,,,,, $`a$gd_ 7$8$H$gdHf 7$8$H$gd_ 7$8$H$gd'< $`a$gd.P 7$8$H$gd= s$a$gd= s)))*2*N*x***********++++++ijsss^E^E^1hGh_B*CJOJQJ^JaJmH phsH (hGh_CJOJQJ^JaJmH sH (hGh'<CJOJQJ^JaJmH sH 1hGh'<B*CJOJQJ^JaJmH phsH h7\I h|@hSl h|@h'< h|@h= sCJOJQJ^JaJ(hGh= sCJOJQJ^JaJmH sH 1hGh= sB*CJOJQJ^JaJmH phsH  h|@h= s h|@h.P++++,,,,$,B,T,h,t,,,,,-Ѹѣq`OH3)h|@h_B*CJOJQJ^JaJph h|@h_ h|@hHfCJOJQJ^JaJ h|@h'<CJOJQJ^JaJ1hGhHfB* CJOJQJ^JaJmH phsH 1hGhHfB*CJOJQJ^JaJmH phsH (hGhHfCJOJQJ^JaJmH sH 1hGh_B*CJOJQJ^JaJmH phsH (hGh_CJOJQJ^JaJmH sH 1hGh_B* CJOJQJ^JaJmH phsH ,--$-4-6-J.L.Z.j.x...0j0l0002222 $`a$gdx$a$gd@1 7$8$H$gdO$a$gdSl $`a$gd.P $`a$gd_$a$gd_----"-$-2-4-6-l-~-----H.J.L.X.Z.h.j.v.x.......////00h0l0n0ѱƜƊƊъy h|@hOCJOJQJ^JaJ h|@h@1h|@hSlB*ph)h|@hSlB*CJOJQJ^JaJph)h|@hOB*CJOJQJ^JaJph h|@hSlh68 h|@hO h|@h_)h|@h_B*CJOJQJ^JaJphh|@h_B*ph&n0v0x0|000000000L1^12 2,262B2^2p22222222222 3Ѽѣ漘|ѣg\UUU h|@hxhGhOmH sH (hGhxCJOJQJ^JaJmH sH  h|@hOCJOJQJ^JaJh68 h|@h@1hGh_mH sH 1hGhOB* CJOJQJ^JaJmH phsH (hGh@1CJOJQJ^JaJmH sH (hGhOCJOJQJ^JaJmH sH 1hGhOB*CJOJQJ^JaJmH phsH 2333.3>3L3\3l3n344556677"9$9d9f9:$a$gd, $`a$gd:z 7$8$H$gd2 $`a$gd.P $`a$gdx$a$gdx 33333,3.3<3>3J3L3Z3\3j3l3n333&4R4\4^4444555566v6ʵj_TPh68hGh\)mH sH hGhxmH sH (hGh&9CJOJQJ^JaJmH sH (hGhxCJOJQJ^JaJmH sH  h|@h&9h  h h h&h|@hxB*ph)h|@hxB*CJOJQJ^JaJphhGhxB*mH phsH 1hGhxB*CJOJQJ^JaJmH phsH  h|@hx h|@hOv666677777888889 999"9$9d9f99 ::::Dzǧ}vohO1hGh@B*CJOJQJ^JaJmH phsH  h|@h2C h|@h:z h|@h&H h|@h,h,h,5>*OJQJ^Jh@h,h68 h|@h@hGh:zmH sH (hGh&9CJOJQJ^JaJmH sH (hGh2CCJOJQJ^JaJmH sH  h|@hx h|@h&9)h|@h&9B*CJOJQJ^JaJph::*:^:`:j:x:z:,;.;>;B;;)<o<<<<=N>P>n>r>>>> 7$8$H$gd*F $a$gd@ 7$8$H$gd@ $`a$gd&9:*:4:@:L:`:v:z:.;8;;;;; <<<"<*<6<;<A<O<X<b<h<p<w<<<<<<<<<<<<<<<<< >>&>.>H>J>P>X>> h|@h*F 1hGh@B* CJOJQJ^JaJmH phsH  h|@h@ h|@h:z h|@h@CJOJQJ^JaJ1hGh@B*CJOJQJ^JaJmH phsH (hGh@CJOJQJ^JaJmH sH 4>>>>>>>>>>> ? ?? ?J?T?^?j?l?v?@@@@"@*@5@;@C@G@N@Q@`@i@s@y@@@ڻ{{{{{b{{{{b{{1hGh@B* CJOJQJ^JaJmH phsH (hGh@CJOJQJ^JaJmH sH 1hGh@B*CJOJQJ^JaJmH phsH h68 h|@h@ h|@h*F h|@h@CJOJQJ^JaJh\)CJOJQJ^JaJ h|@h*F CJOJQJ^JaJ(hGh*F CJOJQJ^JaJmH sH &>>>>H?J?|??@B@@@AAABBBBBCC&C6C$a$gd*F $`a$gd&9 $`a$gd@ 7$8$H$gd@ 7$8$H$gd*F @@@@@@@@@@@@AABbBfBhB|BBBBBBBBBBCCCC$CѸѸѧ|m|m|m|m|mX)h|@h*F B*CJOJQJ^JaJphhGh*F B*mH phsH 1hGh*F B*CJOJQJ^JaJmH phsH h68 h|@h*F h|@h@ h|@h@CJOJQJ^JaJ1hGh*F B* CJOJQJ^JaJmH phsH (hGh*F CJOJQJ^JaJmH sH 1hGh*F B*CJOJQJ^JaJmH phsH  $C&C4C6CDCFCtCCEEEEEEF:F>FTFnFFFFFFFF"G4GHGJGbGGƿԸrrrr`Qh_t/6CJOJQJ^JaJ#h_t/h_t/6CJOJQJ^JaJ#h|@h66CJOJQJ^JaJh686CJOJQJ^JaJ%h]6CJOJQJ^JaJmH sH #h|@h:z6CJOJQJ^JaJ h|@h&H h|@h:z h|@h@ h|@hN5h68 h|@h*F )h|@h*F B*CJOJQJ^JaJphh|@h*F B*ph6CFCHCEEF&GHH0IIuuu$ & F8$If^8`a$gd@$$If^a$gdz$ & F8$If^8`a$gd6$ & F )88$If^8`a$gd:z$ & F $If^a$gdz $`a$gd&9$a$gd*F GGGGGG H HHtHxHHHHHHHHHHHH0IIIIII˹핹tetctteeUh@6CJOJQJ^JaJ#h|@hO'6CJOJQJ^JaJh_t/6CJOJQJ^JaJ#h|@hmG6CJOJQJ^JaJ#h|@h:z6CJOJQJ^JaJ#h|@hG%6CJOJQJ^JaJ%h6CJOJQJ^JaJmH sH h686CJOJQJ^JaJ#h|@h66CJOJQJ^JaJ# ?5@53@C60NI8< <5B>4>< ?@O<> 8;8 :>A25==> 2K2545= 87 :;0AA0 C:070B5;O 8;8 AAK;:8, 2>72@0I05<>3> ?5@53@C605<K< <5B>4><; >10 >=8 :>=AB0=B=K5 8;8 =5 :>=AB0=B=K5 C:070B5;8 8;8 AAK;:8, ;81> B8?, 2>72@0I05<K9 ?@54:>< :>=AB0=B=K9, 0 ?>B><:0  =5 :>=AB0=B=K9 (cv-evaluation B8?0, 2>72@0I05<>3> <5B>4>< ?@54:0 <5=LH5 8;8 @025= cv-evaluation B8?0, 2>72@0I05<>3> <5B>4>< ?>B><:0). @82545=85 B8?>2 ?@8 28@BC0;L=>< ?5@5:@KB88 <5B>4>2 4=0 87 ?@>1;5< 28@BC0;L=>3> ?5@5:@KB8O <5B>4>2 A2O70=0 A B@51>20=85< B>G=>3> A>2?045=8O B8?>2 ?0@0<5B@>2 ?5@5:@K20NI53> 8 ?5@5:@K205<>3> <5B>4>2. 7 MB>3> B@51>20=8O, 2 G0AB=>AB8, A;54C5B, GB> <5B>4, ?>;CG0NI89 2 :0G5AB25 ?0@0<5B@0 A2>9 >1J5:B =5 <>65B 1KBL ?5@5:@KB 28@BC0;L=>. 5B>4, ?>;CG0NI89 2 :0G5AB25 ?0@0<5B@0 C:070B5;L 8;8 AAK;:C =0 A2>9 >1J5:B <>65B 1KBL 28@BC0;L=> ?5@5:@KB, => 745AL =04> 1C45B ?@8<5=OBL O2=>5 ?@82545=85 B8?>2 ?0@0<5B@>2, :>B>@>5 <K @0AA<>B@8< =0 A;54CNI5< ?@>4>;65=88 =0H53> ?@8<5@0. CABL 2 :;0AA5 A >1JO2;5= (A ?>A;54CNI59 28@BC0;L=K< ?5@5:@KB85<) 8 >?@545;5= <5B>4 Add, :>B>@K9 >1J5:BC, G5@57 :>B>@K9 >= 2K720= 1C45B ?@8A20820BL 7=0G5=85 AC<<K >1J5:B>2, ?@8=8<05<KE 2 :0G5AB25 ?0@0<5B@>2: class A { private: int a; public: . . . . . . . . . . . . . . . . . . . . . . . . virtual void Add(const A& _ao1, const A& _ao2); }; void A::Add(const A& _ao1, const A& _ao2) { a = _ao1.a + _ao2.a; }  :;0AA5 B <5B>4 Add ?5@5:@KB A;54CNI8< >1@07><: class B: public A { private: int b; public: . . . . . . . . . . . . . . . . . . . . . . . . void Add(const A& _ao1, const A& _ao2); }; void B::Add(const A& _ao1, const A& _ao2) { this->A::Add(_ao1,_ao2); b = static_cast<const B&>(_ao1).b + ((const B&)(_ao2)).b; } =0;>38G=> >1KG=>< ?5@5:@KB88 <5B>40, <5B>4 B::Add >1@0I05BAO : A>>B25BAB2CNI5<C <5B>4C ?@54:0 4;O 2K?>;=5=8O >?5@0F88 2 G0AB8 ?>;59 ?@54:0, 0 70B5< 2K?>;=O5B A2>N G0ABL >?5@0F88. 45AL 4;O 2K?>;=5=8O A2>59 G0AB8 ?>;CG5==K5 <5B>4>< AAK;:8 =0 >1J5:BK :;0AA0 A O2=> ?@82>4OBAO : AAK;:0< =0 >1J5:BK :;0AA0 B. "0:>5 ?@82545=85 B8?0 <>65B 1KBL 2K?>;=5=> :0: static_cast<const B&>(_ao1) 8;8 :0: ((const B&)(_ao2)). -B8 420 A?>A>10 1C4CB >B;8G0BLAO B>;L:> B5<, GB> 2 ?5@2>< A;CG05 :><?8;OB>@ =5 1C45B 2K4020BL ?@54C?@5645=8O > 2>7<>6=KE >H81:0E B0:>3> ?@5>1@07>20=8O (MB8 >H81:8 @0AA<>B@8< =865). !;54C5B 70<5B8BL, GB> ?@5>1@07>20=85 B8?0 <>6=> 1K;> 1K ?@>25AB8 8 :0: dynamic_cast<const B&>(_ao1). > 2 MB>< A;CG05 ?@5>1@07>20=85 1C45B ?@>2>48BLAO =0 H035 2K?>;=5=8O ?@>3@0<<K, 0 =5 =0 H035 :><?8;OF88 :0: 2 ?5@2KE 42CE A;CG0OE. ;O B5AB8@>20=8O ?5@5:@KB8O <5B>40 Add 4>1028< 2 =0H ?@8<5@ DC=:F8N faAdd: void faAdd(A& ao1, A& ao2, A& ao3) { ao1.Add(ao2, ao3); } 0 DC=:F8N main ?@54AB028< 2 2845: int main() { A a1(1), a2(2), a3(3); B b1(1,2), b2(3,4), b3(5,6); faAdd(a1, a2, a3); faAdd(b1, b2, b3); return 0; } @8 B0:>< 20@80=B5 2K7>2>2 DC=:F88 faAdd <K ?>;CG8< 2?>;=5 >68405<K5 @57C;LB0BK: a1.a = 5: b1.a = 8 8 b1.b = 10. > GB> 1C45B, 5A;8 DC=:F8O faAdd 1C45B 2K720=0 2 A;54CNI8E 20@80=B0E: faAdd(a1, b2, b3); faAdd(b1, a2, b3); @5645 2A53>, ?@>3@0<<0 ?@>@01>B05B, B.5. =8 =0 H035 :><?8;OF88, =8 =0 H035 ;8=:>2:8, =8 =0 H035 2K?>;=5=8O =5 1C45B 2K40=> =8:0:8E >H81>:. ;O 2K7>20 faAdd(a1, b2, b3) 2 DC=:F88 faAdd 1C45B 2K720= <5B>4 Add :;0AA0 A. >;O b ?5@540==KE 2 faAdd >1J5:B>2 b2 8 b3 1C4CB ?@>83=>@8@>20=K. ;O 2K7>20 faAdd(b1, a2, b3) 2 DC=:F88 faAdd 1C45B 2K720= <5B>4 Add :;0AA0 B, >BACBAB285 C ?5@540==>3> 2 faAdd >1J5:B0 a2 ?>;O b 1C45B ?@>83=>@8@>20=>. !;54AB285< O2=>3> ?@82545=8O B8?0 static_cast<const B&>(_ao1).b 1C45B B>, GB> 2 :0G5AB25 7=0G5=8O ?>;O b 1C45B 8A?>;L7>20= <CA>@, ;560I89 2A;54 =0 ?>;5< a >1J5:B0 a2, 8 ?>;5 b >1J5:B0 b1 ?>;CG8B A;CG09=>5 7=0G5=85. "0:8< >1@07><, =587156=>5 8A?>;L7>20=85 >?5@0F88 O2=>3> ?@82545=8O B8?0 1;>:8@C5B :>=B@>;L B8?>2 (> G5< 8 1C45B 2K40=> ?@54C?@5645=85 =0 H035 :><?8;OF88), 8 >AB02;O5B =0 ?@>3@0<<8AB5 >B25BA25==>ABL 70 ?@028;L=K9 2K7>2 28@BC0;L=> ?5@5:@KBKE <5B>4>2. =0;>38G=K5 ?@>1;5<K 2>7=8:0NB 8 ?@8 28@BC0;L=>< ?5@5:@KB88 <5B>4>2, 2>72@0I0NI8E C:070B5;8 8;8 AAK;:8 =0 A2>8 >1J5:BK. -B8 ?@>1;5<K @0AA<>B@8< =0 A;54CNI5< ?@8<5@5. @54?>;>68<, GB> 2 :;0AA5 A 1K; >1JO2;5= <5B>4 Add1 (A45;0==K9 2?>A;54AB288 28@BC0;L=K<), :>B>@K9 AC<<8@C5B >1J5:B, G5@57 :>B>@K9 >= 2K720= A ?>;CG5==K< >1J5:B>< 8 2>72@0I05B C:070B5;L =0 @57C;LB0B: class A { . . . . . . . . . . . . . . . . . . . . . . . . virtual A* Add1(const A& _ao) const; }; A* A::Add1(const A& _ao) const { A* tmp = new A; tmp->a = a + _ao.a; return tmp; } B<5B8<, GB> 2 <5B>45 Add1 2 :CG5 A>7405BAO :>?8O >1J5:B0 A, 2 :>B>@CN ?@>2>48BAO AC<<8@>20=85, 8 C:070B5;L =0 :>B>@CN 2>72@0I05BAO. B25BAB25==>ABL 70 >A2>1>645=85 MB>9 :>?88 ;568B =0 :;85=B5 <5B>40. ;85=B>< :;0AA0 A 4;O MB>3> <5B>40 1C45B DC=:F8O faAdd1: A* faAdd1(A& ao1, A& ao2) { return ao1.Add1(ao2); } K7>2 :;85=B0 faAdd1 2 DC=:F88 main 2K3;O48B B0:: A* pa = faAdd1(a1, a2); delete pa;  :;0AA5 B <5B>4 Add1 1K; ?5@5:@KB A;54CNI8< >1@07><: class B: public A { . . . . . . . . . . . . . . . . . . . . . . . . B* Add1(const A& _ao) const; }; B* B::Add1(const A& _ao) const { A* Atmp = this->A::Add1(_ao); B* Btmp = new B; *Btmp = *static_cast<B*>(Atmp); delete Atmp; Btmp->b = b + static_cast<const B&>(_ao).b; return Btmp; } >A:>;L:C 745AL 4;O =0A 206=> 8A?>;L7>20BL >4=>8<5==K9 <5B>4 ?@54:0, <K 2K=C645=K A>7420BL 2@5<5==CN A* Atmp, :>B>@>9 <5B>4 A::Add1 25@=5B A>740==K9 2 :CG5 >1J5:B :;0AA0 A. 0;55 G5@57 C:070B5;L Btmp 2 :CG5 A>7405BAO >1J5:B :;0AA0 B, :>B>@><C ?@8A208205BAO @57C;LB0B A;>65=8O 2 G0AB8 :;0AA0 A. -B> ?@8A20820=85 O2;O5BAO C7:8< <5AB><. 45AL, :0: 8 2 A8BC0F88, >?8A0==>9 2KH5, ?>;5 b >1J5:B0 *Btmp ?>;CG8B A;CG09=>5 7=0G5=85.  =0H5< A;CG05 MB> =5 AB@0H=>  40;55 MB> ?>;5 ?>;CG8B ?@028;L=>5 7=0G5=85. > 2 1>;55 A;>6=KE :;0AA0E B0:0O >H81:0 <>65B 8<5BL =5?@54A:07C5<K5 ?>A;54AB28O, >B25BA25==>ABL 70 :>B>@K5 B0:65 ;568B =0 ?@>3@0<<8AB5. ;O :>@@5:B=>3> 2K?>;=5=8O MB>3> ?@8A20820=8O 2 :;0AA5 B 4>;6=0 1KBL ?5@5:@KB0 >?5@0F8O ?@8A20820=8O 4;O A;CG0O ?@8A20820=8O >1J5:B0 :;0AA0 A. 070;>AL, GB> <>6=> 1K;> 1K C?@>AB8BL :>4 <5B>40 B::Add1 A;54CNI8< >1@07><: B* B::Add1(const A& _ao) const { B* Btmp = new B; *Btmp = *static_cast<B*>(this->A::Add1(_ao)); Btmp->b = b + static_cast<const B&>(_ao).b; return Btmp; } "0:>9 20@80=B 2K40AB ?@028;L=K9 @57C;LB0B, => 2 :CG5 >AB0=5BAO <CA>@  :>?8O >1J5:B0 A, A>740==0O <5B>4>< A::Add1. K7>2 :;85=B0 faAdd1 2 DC=:F88 main 4;O >1J5:B>2 :;0AA0 B 2K3;O48B B0:: B* pb = static_cast<B*>(faAdd1(b1, b2)); delete pb; "0:>9 2K7>2 2K?>;=8BAO :>@@5:B=>. K7>2K B8?0: pa = faAdd1(a1, b1); delete pa; pb = static_cast<B*>(faAdd1(a1, b2)); delete pb; >B@01>B0NB, => ?> 0=0;>38G=K< ?@8G8=0< >=8 <>3CB 8<5BL =5?@54A:07C5<K5 @57C;LB0BK. 5B>4K, ?>;CG0NI85 2 :0G5AB25 ?0@0<5B@0 >1J5:B A2>53> :;0AA0 =5 <>3CB 1KBL 28@BC0;L=> ?5@5:@KBK 5B>4K, ?>;CG0NI85 2 :0G5AB25 ?0@0<5B@0 AAK;:C 8;8 C:070B5;L =0 >1J5:B A2>53> :;0AA0 <>3CB 1KBL 28@BC0;L=> ?5@5:@KBK, => ?@8 MB><: 28@BC0;L=> ?5@5:@K205<K5 <5B>4K ?>B><:>2 ?>;CG0NB 2 :0G5AB25 ?0@0<5B@>2 C:070B5;8 8;8 AAK;:8 =0 >1J5:BK =5 A2>53> :;0AA0, 0 =0 >1J5:BK 107>2>3> :;0AA0, :>B>@K5 =04> O2=> ?@82>48BL : C:070B5;O< 8;8 AAK;:0< =0 >1J5:BK A2>53> :;0AA0 A ?><>ILN >?5@0F88 static_cast<& >; ?@8<5=5=85 >?5@0F88 O2=>3> ?@82545=8O B8?>2 1;>:8@C5B A8=B0:A8G5A:89 :>=B@>;L B8?>2 8 ?5@5:;04K205B =0 ?@>3@0<<8AB0 >B25BAB25==>ABL 70 ?@028;L=K9 2K7>2 28@BC0;L=> ?5@5:@KBKE <5B>4>2 8 ?@028;L=>5 8E :>48@>20=85. 8@BC0;L=>5 ?5@5:@KB85 >?5@0F89 A>15==>AB8 28@BC0;L=>3> ?5@5:@KB8O ?5@53@C65==KE >?5@0F89 A2O70=K A >?8A0==K<8 2KH5 >3@0=8G5=8O<8 28@BC0;L=>3> ?5@5:@KB8O <5B>4>2: 8@BC0;L=> =5 <>3CB 1KBL ?5@5:@KBK >?5@0F88, 2>72@0I0NI85 >1J5:B A2>53> :;0AA0.  MB8< >?5@0F8O< >B=>AOBAO 2A5 0@8D<5B8G5A:85 18=0@=K5 >?5@0F88 + - * /. A5 >AB0;L=K5 >?5@0F88, ?5@53@C65==K5 2 :;0AA5-?@54:5 <>3CB 1KBL 28@BC0;L=> ?5@5:@KBK 2 :;0AA0E-?>B><:0E. @8 28@BC0;L=>< ?5@5:@KB88 ?5@53@C65==KE >?5@0F89 =0 ?@>3@0<<8AB5 ;568B >B25BAB25==>ABL 70 :>=B@>;L A>>B25BAB28O B8?>2.     PAGE  PAGE 5 |ފ >rދ&BHd\lL\(NZ\^`bƏʏ̏˼˪x h|@ho h|@h5 h7\Ih68 h|@h F h|@hJ> h|@h&9 h|@h:z#h|@h@6CJOJQJ^JaJh@6CJOJQJ^JaJh_t/6CJOJQJ^JaJ#h_t/h_t/6CJOJQJ^JaJ%h_t/6CJOJQJ^JaJmH sH -PRb,<L}}}}}}} 7$8$H$gdYgdJ> $`a$gd&9gkde$$Ifl$$ t0644 la(.4<HNȑґܑ.8LVjʒڒ˳˝c8hGh5 B*CJOJQJ^JaJmHnHphsH u h|@hJ>h7\I h|@h5 h] h|@hY+h|@hYCJOJQJ^JaJmHnHu/hGhRCJOJQJ^JaJmHnHsH u/hGhYCJOJQJ^JaJmHnHsH u8hGhYB*CJOJQJ^JaJmHnHphsH u"jn(,>N^lp 7$8$H$gd5 $`a$gd5 $`a$gd] $`a$gd&9 7$8$H$gdY",:@FNZ“ʓԓޓ 0:NXrzĔƔД BDFZz|紭y4h|@h/B*CJOJQJ^JaJmHnHphu h|@h/ h|@h'6h68 h|@h h|@h5 +h|@h5 CJOJQJ^JaJmHnHu8hGh5 B*CJOJQJ^JaJmHnHphsH u/hGh5 CJOJQJ^JaJmHnHsH u( 48BXVnpzΛ08vȝԝܝRTҠqqqf_X h|@hgX h|@hp]hGh4mH sH +h|@h4CJOJQJ^JaJmHnHu/hGh4CJOJQJ^JaJmHnHsH u8hGh4B*CJOJQJ^JaJmHnHphsH uh68 h|@h4 h|@h/4h|@h/B*CJOJQJ^JaJmHnHphu+h|@h/CJOJQJ^JaJmHnHu.0vz8tĝƝܝPRz $`a$gd4$a$gd4 7$8$H$gd4 $`a$gd5 ҠܡPfhr\,flp̨ݻݯݣ~vokd h]h]hU$ hGh]h]mH sH h\)h68h]h5 h|@h5 mHnHuh7\ImHnHuh|@hmmHnHuh|@h'6mHnHu4h|@hgXB*CJOJQJ^JaJmHnHphu h|@hgXh|@hgXmHnHu+h|@hgXCJOJQJ^JaJmHnHu¤`fʪNR 7$8$H$gd: 7$8$H$gd] $`a$gd5 $`a$gdgX 6@PR\|ª:ƬȬ˳˳~kgcg_W_h:mH sH h:h=clhU$%h]CJOJQJ^JaJmHnHu.h]B*CJOJQJ^JaJmHnHphu8hGhU$B*CJOJQJ^JaJmHnHphsH u/hGhU$CJOJQJ^JaJmHnHsH u/hGh]CJOJQJ^JaJmHnHsH u8hGh]B*CJOJQJ^JaJmHnHphsH uNT`ĭ̭(24V\`hx红͓͛確͏|x[8hGhU$B*CJOJQJ^JaJmHnHphsH uh]h7\I hGhU$hU$mH sH hU$h:mH sH  h:h:.h:B*CJOJQJ^JaJmHnHphu%h:CJOJQJ^JaJmHnHuh:+h:h:CJOJQJ^JaJmHnHu/h:h:CJOJQJ^JaJmHnHsH u24Ʈʮ,lrXtΰ 7$8$H$gdU$ 7$8$H$gd: $`a$gd5 $a$gd:BL^hʯү֯*@ZfаܰtƱ皇i`ihqGmHnHu+hqGhqGCJOJQJ^JaJmHnHuhqGh4%hU$CJOJQJ^JaJmHnHu.hU$B*CJOJQJ^JaJmHnHphu/hGhqGCJOJQJ^JaJmHnHsH u8hGhU$B*CJOJQJ^JaJmHnHphsH u/hGhU$CJOJQJ^JaJmHnHsH u%BDt|46\pTVXprȽȽȽȴȴȴ|sj_jh/FmHnHsH uh/FmHnHuh]mHnHuh7\ImHnHu/hGh- CJOJQJ^JaJmHnHsH uh- h- mHnHuh- mHnHsH uh- mHnHuhqGmHnHsH uhqGmHnHu+hqGhqGCJOJQJ^JaJmHnHu/hGhqGCJOJQJ^JaJmHnHsH u ܷbظܸ޸ƹȹXZƺȺ&(Tlһֻ 7$8$H$gdZ 7$8$H$gd: $`a$gd: 7$8$H$gd/F $`a$gd5 зܷ.8@ʸܸƹȹ8:<۾۾۾۾۾۾۾ۦnXPPI h:h:h:mH sH +h:h:CJOJQJ^JaJmHnHu/h:h:CJOJQJ^JaJmHnHsH uh:h/FmHnHu%h/FCJOJQJ^JaJmHnHu.h/FB*CJOJQJ^JaJmHnHphu8hGh/FB*CJOJQJ^JaJmHnHphsH u/hGh/FCJOJQJ^JaJmHnHsH uh/Fh/FmHnHu<XZ\lƺȺ$&(*Vbxȫȓt\?\?\8hZhZB*CJOJQJ^JaJmHnHphsH u/hZhZCJOJQJ^JaJmHnHsH u%hZCJOJQJ^JaJmHnHuhZh:mH sH .h:B*CJOJQJ^JaJmHnHphu8h:h:B*CJOJQJ^JaJmHnHphsH u/h:h:CJOJQJ^JaJmHnHsH u%h:CJOJQJ^JaJmHnHuh:mHnHuh:Ȼһ&fz|2B 0nJ`bdh &ͻll]VOH h|@hN5 h:hZ h|@hf.whf.w6CJOJQJ^JaJ+h|@hf.wCJOJQJ^JaJmHnHu4h|@hf.wB*CJOJQJ^JaJmHnHphuh`#6CJOJQJ^JaJh7\I6CJOJQJ^JaJ#h|@hf.w6CJOJQJ^JaJhf.whZ%hZCJOJQJ^JaJmHnHu.hZB*CJOJQJ^JaJmHnHphuֻFPjTbVQgdN5 $`a$gd5 gkd$$Ifl$$ t0644 la$ & F $If`a$gdgO$ & F $If^a$gdgO$a$gdZ &*,@RTVnJZ`pr`bdfjlprvx|~h\h,0JmHnHuh@ h@0Jjh@0JUh, jh, U hIhIhN5 h|@hJ>h`#h7\IhIhImH sH hf.w h|@h&9 h|@hN5h681TV^rbdhjnptvz|h]hgd&H &`#$gd_yS $ & F a$gdI $`a$gd&9 $`a$gd&95 01h:p&H. A!"R#n$n% c$$If!vh5$#v$:Vl t65$/  / c$$If!vh5$#v$:Vl t65$/  / c$$If!vh5$#v$:Vl t65$/  / B@B *F 1KG=K9CJ_HaJmHsHtH^@^ {%J 03>;>2>: 1$<@&5CJ KH OJQJ\^JaJ BA@B A=>2=>9 H@8DB 0170F0Xi@X 1KG=0O B01;8F04 l4a .k@. 5B A?8A:0L@L E5@E=89 :>;>=B8BC;  E$J @J E86=89 :>;>=B8BC;  E$p@p v !5B:0 B01;8FK7:V04)@!4 &H><5@ AB@0=8FK`Y@2` J>!E5<0 4>:C<5=B0-D M CJOJQJ^JaJ^@^@_@K00` 00`̇0` 00`̇0`_@K00| 00|̇0| 00|̇0|;<D ,>|MN]_jlm     > h z  + - 7 @ L U W X   R S   M  $&'efAEF{|%&-5<DE56uvOPijst/05<=)o'(79DP\hjkBlmt|&' \ z!u"v"w"""$%%%%%%%% &&8&:&P&R&S&&&&&&&&& ''9';'U''''*++>+@+T+V+W+y+z+++++++++++,,,,,d/]0^011111 23262U2W2h2}222V3333333333444S4T4f4h44444445/5=5j5x5z588888949a9o9q9r999/:0:Z:f:g::::::::C;D;;+<8= > > >->.>>R??4@5@7@8@:@;@=@>@@@A@J@K@L@W@X@Y@Z@[@\@_@0000000000000000000000000000000000000000000000000000000000000000000000000000000 00 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0 0 00 0 0 00000w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"@0w"0w"0w"0w"@0w"@0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w"0w" 0w" 0w" 0w" 0w"0w"0w"00 >0 > 0 > 0 > 0 >0 >@0I00@0I00@0I00@0I00@0@0@0@0@0@0I00 000;<D ,>|MN]_jlm     > h z  + - 7 @ L U W X   R S   M  $&'efAEF{|%&-5<DE56uvOPijst/05<=)o'(79DP\hjkBlmt|&' \ z!u"v"w"""$%%%%%%%% &&8&:&P&R&S&&&&&&&&& ''9';'U''''*++>+@+T+V+W+y+z+++++++++++,,,,,d/]0^011111 23262U2W2h2}222V3333333333444S4T4f4h44444445/5=5j5x5z588949a9o9q99/:0:Z:f:g::::::::C;D;;+<8= > > >->.>>R??4@_@0000000000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0 0 00 0 0 00000!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"@0!"@0!"@0!"@0!"@0!"@0!"@0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!"0!" 0!" 0!" 0!" 0!"0!"0!"00V<0V< 0V< 0V<00 $$$$$'@"8%()+-n0 3v6:>@$CGҠ<&%()+-/024578:;=>@ACdfhikmnpqstuw:'),2:>6CֻT&*,.1369<?Begjlorvxy'  '!!8  @ 0(  B S  ?^@>~g$(TXim  &(tuILSUY[m     $ ' K M S U ` d   # 8 : A L M U X   R t x %.Cko $'I\c.2F{$&,-45;<CEm4NRcgw'+<@PSo :bcgBErJ0;=GK\`$-/35EPQWX\]cdhk/3NQRSX\mq0Rk%'2?LM_e  D E Q R Z \ m n v w !!b!c!x!z!}!~!!!!!!!!!"" """A"C"D"O"S"U"k""""""#6#=#?#########)$;$$$$% % %%d&h&{&&'''''''())1).*L****+W+y++,,l---r0000000116191;1<112303U3V3f3h333333334.41474J4Q4z55559: ::!:/:g::::::; ; ;5;6;@;D;J;L;;;;;<$<6<S<(=8=c=d=== >9>:>R>_>r>>>>>>>>>>>;?5@5@7@7@8@8@:@;@=@>@@@A@Y@Z@_@ Zq .8IQ{{||muVX]c)./ Jfrsvx9;<F 2?MWgkmnx """"#$#'#5###)$1$$$$$h&p&''''**I0Q0]0]000 3U33344474?4;8C888889194949q99[:f:;;<<:<C<==>>>#>:>Q>R>`>>>>>>>?C?N?Q?3@4@5@5@7@7@8@8@:@;@=@>@@@A@Y@Z@_@ Zq .8IQ{{||muVX]c)./ Jsvx9;<F 2?MWkmnx k"s"""""#$#'#5###)$1$$$$$h&p&''''**I0Q0]0]0003 3334474?4;8C888889194949q99;;<<:<C<==>>>#>:>Q>R>`>>>>>>>C?N?Q?3@_@ 5i^plN T$S^# 9 zE MeN9,*[P@o]@IfzF6"#i|:bJlEo h)?)^)`?o(.h ^`hH.h pLp^p`LhH.h @ @ ^@ `hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH.h ^`hH.h ^`hH.h L^`LhH.h   ^ `hH.h XX^X`hH.h (L(^(`LhH.h ^`hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h L^`LhH.h   ^ `hH.h XX^X`hH.h (L(^(`LhH.h ^`hH.h ^`hH.h L^`LhH.)?)^)`?o(. ^`hH. pLp^p`LhH. @ @ ^@ `hH. ^`hH. L^`LhH. ^`hH. ^`hH. PLP^P`LhH.)?)^)`?o(. ^`hH. pLp^p`LhH. @ @ ^@ `hH. ^`hH. L^`LhH. ^`hH. ^`hH. PLP^P`LhH.)?)^)`?o(. ^`hH. pLp^p`LhH. @ @ ^@ `hH. ^`hH. L^`LhH. ^`hH. ^`hH. PLP^P`LhH. ^`OJQJo(q ^`OJQJo(q pp^p`OJQJo(q @ @ ^@ `OJQJo(q ^`OJQJo(q ^`OJQJo(q ^`OJQJo(q ^`OJQJo(q PP^P`OJQJo(qh)?)^)`?o(.h ^`hH.h pLp^p`LhH.h @ @ ^@ `hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH.h)?)^)`?o(.h ^`hH.h pLp^p`LhH.h @ @ ^@ `hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH.h ^`hH.h ^`hH.h L^`LhH.h   ^ `hH.h XX^X`hH.h (L(^(`LhH.h ^`hH.h ^`hH.h L^`LhH.h ^`hH.h ee^e`hH.h 5 L5 ^5 `LhH.h ^`hH.h ^`hH.h L^`LhH.h uu^u`hH.h EE^E`hH.h L^`LhH.h ^`hH.h ^`hH.h L^`LhH.h   ^ `hH.h XX^X`hH.h (L(^(`LhH.h ^`hH.h ^`hH.h L^`LhH.)?)^)`?o(. ^`hH. pLp^p`LhH. @ @ ^@ `hH. ^`hH. L^`LhH. ^`hH. ^`hH. PLP^P`LhH. T$IfzES^#[PN JlEoo]5i^96"#iMeN dВdВR'NxZ6`<pm#2ؗCLsdВkz U(|U(||HcfDkz eQr|Hclk,T@6Z_5 *F :C n]dx 4mv\ `#U$+_t/@1N5J>|@ FmGqG&H7\I{%J.PzPP$Q_ySp] ^ahHiSl=cl1o= sPsf.w'6wzEo0^Y&:IQxE`mHgX:z, \)?zl9]- gOy/2Cr&9 f4tSO\@%Xq/v'6Hf4|68]5i/FR3Cd_['<2%YGG%O' 'u"v"D; > >_@@ !^@PPPP P(P*P,P0Px@P>P@PBPUnknownGz Times New Roman5Symbol3& z Arial?5 z Courier New5& zaTahoma;Wingdings"1bhQ[ɦ 6 t 6 t!n24d@@ 2QHP ?E2Sergey Karpenko KarpenkoSN@         Oh+'0x  4 @ LX`hpSergey Karpenko Normal KarpenkoSN29Microsoft Office Word@ur@@*' 6՜.+,0 hp  NNSUt @     !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz|}~Root Entry F Data {1TableWordDocument7SummaryInformation(DocumentSummaryInformation8CompObjq  F Microsoft Office Word MSWordDocWord.Document.89q