рдореЗрд░реЗ рдХрд╛рдо рдХреЗ рдЕрдиреБрднрд╡ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдПрдореНрдмреЗрдбреЗрдб рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдХрдИ рд╡рд░реНрд╖реЛрдВ рдХрд╛ рд╡рд┐рдХрд╛рд╕ рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬрд╣рд╛рдВ рдХреЛрдб рд▓рд┐рдЦрддреЗ рд╕рдордп рдкреНрд░рджрд░реНрд╢рди рдХреЛ рд▓рдЧрд╛рддрд╛рд░ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ (рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рд╕рд┐рд╕реНрдЯрдо рдЬреЛ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рддреЗ рд╣реИрдВ - рд╡рд╣рд╛рдВ рдХрднреА рднреА рдмрд╣реБрдд рдЕрдзрд┐рдХ рдкреНрд░реЛрд╕реЗрд╕рд░ рдФрд░ рдореЗрдореЛрд░реА рдЧрддрд┐ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ)ред рддрджрдиреБрд╕рд╛рд░, рдЗрд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ, рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдЖрдорддреМрд░ рдкрд░ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ рдХрд┐ рдУрд╡рд░рд╣реЗрдб рдХреНрдпрд╛ рд╣реИ (рдпрд╛ рдирд╣реАрдВ) C ++ рднрд╛рд╖рд╛ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕реБрд╡рд┐рдзрд╛ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдиреЗрдорд╕реНрдкреЗрд╕ рд╕рдорд░реНрдерди - рдЬреЛ рднреА рдЕрддрд┐рд░рд┐рдХреНрдд рд▓рд╛рдЧрдд рдирд╣реАрдВ; рдЖрд░рдЯреАрдЯреАрдЖрдИ - рдЙрдирдХреЗ рдЯрд╛рдЗрдк_рдЗрдирдлреЛ рдХреЗ рд╕рд╛рде рд╡рд░реНрдЧреЛрдВ / рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдЕрдиреБрднрд╛рдЧ (рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдмрд╛рдЗрдирд░реА рдЖрдХрд╛рд░ рдореЗрдВ рд╡реГрджреНрдзрд┐ рд╣реБрдИ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреЛрдб рдкреАрдврд╝реА рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ); рдЖрджрд┐ рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдХреИрд╕реЗ ( рд╕рднреА рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдкрд░ рдирд╣реАрдВ ) рдЕрдкрд╡рд╛рдж рд╕рдорд░реНрдерди рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдХрд░рдг: C ++ рдХреЛрдб рдХреЛ C рдХреЛрдб рдФрд░ рдЖрд░реНрдЯрд┐рд╕реНрдЯрд┐рдХ рд╕реНрдЯрд╛рдЗрд▓ рдХреЛ рдлрд╝реЙрд░реНрдореЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП EDG рд╕реЗ рдкреНрд░рд╛рдЪреАрди рдлреНрд░рдВрдЯ-рдПрдВрдб рдкреНрд░рд╛рдкреНрдд C- рдлрд╝рд╛рдЗрд▓реЗрдВ (рдЕрдиреНрдпрдерд╛ рдЙрдиреНрд╣реЗрдВ рдкрдврд╝рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ)ред рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ EDG рд╕реЗ рдлреНрд░рдВрдЯ-рдПрдВрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ - рдпрд╣ рд╡рд╣ рдлреНрд░реЙрдиреНрдб-рдПрдВрдб рд╣реИ рдЬреЛ рдЗрдВрдЯреЗрд▓ рдХрдВрдкрд╛рдЗрд▓рд░, рдЯреЗрдХреНрд╕рд╛рд╕ рдЗрдВрд╕реНрдЯреНрд░реВрдореЗрдВрдЯреНрд╕ рдХрдВрдкрд╛рдЗрд▓рд░ рдЖрджрд┐ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЪреВрдВрдХрд┐ C ++ рдХреА рд╕рднреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдПрдХ рдмрд╣реБрдд рд╣реА рдореБрд╢реНрдХрд┐рд▓ рдХрд╛рдо рд╣реИ (рд╕реА рднрд╛рд╖рд╛ рдХреА рд╕рднреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ), рдХреБрдЫ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдкрд░ C ++ рдХреЛрдб рдХреЛ рд╕рдорд╛рди C рдХреЛрдб рдореЗрдВ рдЕрдиреБрд╡рд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдХреЛрдб рдкрд╣рд▓реЗ рд╕реЗ рд╣реА C рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдЦрд┐рд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдлреНрд░рдВрдЯ-рдПрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╡реАрдирддрдо рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИред
рддреЛ, рдЪрд▓реЛ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рдкрд╛рда рдХреЛрдб рд▓реЗрддреЗ рд╣реИрдВ (рдирд╛рдо рдФрд░ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЪреБрдирд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЙрдиреНрд╣реЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рд╕реВрдЪреА рдореЗрдВ рдЦреЛрдЬрдирд╛ рдЖрд╕рд╛рди рд╣реЛ):
struct AAAAA { int a; virtual void process(); AAAAA() { a = 1234; } virtual ~AAAAA() {} }; struct BBBBB : AAAAA { virtual void process(); BBBBB() { a = 5678; } virtual ~BBBBB() {} }; // forward declaration int bar(); int foo() { BBBBB b1; b1.a = bar(); b1.process(); BBBBB b2; b2.a = bar(); b2.process(); return b1.a + b2.a; }
рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ - рджреЛ рдЗрдирд▓рд╛рдЗрди рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ / рдбрд┐рд╕реНрдЯреНрд░рдХреНрдЯрд░, рдЖрднрд╛рд╕реА рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдПрдХ рдЬреЛрдбрд╝реЗ, рдПрдХ рдмрд╛рд╣рд░реА рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдХреЙрд▓ред
рдпрд╣рд╛рдБ рдЕрдкрд╡рд╛рдж рд╕рдорд░реНрдерди рдХреЗ рдмрд┐рдирд╛ рдкрд░рд┐рдгрд╛рдореА рдХреЛрдб рд╣реИ (рдкрд░рд┐рдгрд╛рдо AStyle рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛)ред рдПрдХ рд╢реАрдЯ, рд▓реЗрдХрд┐рди рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ:
#line 1 "1.cpp" struct __T9639768; struct AAAAA; #line 9 struct BBBBB; struct __T9639768 { short d; short i; void (*f)(); }; #line 1 struct AAAAA { int a; struct __T9639768 *__vptr; }; #line 9 struct BBBBB { struct AAAAA __b_AAAAA; }; #line 17 extern int bar__Fv(void); extern int foo__Fv(void); #line 10 extern void process__5BBBBBFv(struct BBBBB *const); extern struct __T9639768 __vtbl__5AAAAA[3]; extern struct __T9639768 __vtbl__5BBBBB[3]; #line 19 int foo__Fv(void) { auto int __T9722792; auto struct BBBBB b1; auto struct BBBBB b2; #line 21 { { ((b1.__b_AAAAA).__vptr) = __vtbl__5AAAAA; ((b1.__b_AAAAA).a) = 1234; } ((b1.__b_AAAAA).__vptr) = __vtbl__5BBBBB; ((b1.__b_AAAAA).a) = 5678; } ((b1.__b_AAAAA).a) = (bar__Fv()); process__5BBBBBFv((&b1)); { { ((b2.__b_AAAAA).__vptr) = __vtbl__5AAAAA; ((b2.__b_AAAAA).a) = 1234; } ((b2.__b_AAAAA).__vptr) = __vtbl__5BBBBB; ((b2.__b_AAAAA).a) = 5678; } ((b2.__b_AAAAA).a) = (bar__Fv()); process__5BBBBBFv((&b2)); { __T9722792 = ((((b1.__b_AAAAA).a)) + (((b2.__b_AAAAA).a))); { ((b2.__b_AAAAA).__vptr) = __vtbl__5BBBBB; { { ((b2.__b_AAAAA).__vptr) = __vtbl__5AAAAA; } } } { ((b1.__b_AAAAA).__vptr) = __vtbl__5BBBBB; { { ((b1.__b_AAAAA).__vptr) = __vtbl__5AAAAA; } } } return __T9722792; } }
рдЖрдк рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдСрдмреНрдЬреЗрдХреНрдЯ "рдирд┐рд░реНрдорд╛рдг" рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреИрд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░реНрдп / рд╡рд┐рд░рд╛рд╕рдд рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХрд┐ рдирд┐рд░реНрдорд╛рддрд╛ / рд╡рд┐рдзреНрд╡рдВрд╕рдХ рдЕрднреА рднреА рдЗрдирд▓рд╛рдЗрди рд╣реИрдВ, рдФрд░ рд╕реА рдХрдВрдкрд╛рдЗрд▓рд░ рдореЗрдВ рдЕрднреА рднреА рдЗрд╕ рдХреЛрдб рдХреЛ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдЬрд╛рдирдХрд╛рд░реА рд╣реИред рдпрд╣ рднреА рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╕реА-рдХреЛрдб рдореЗрдВ 72 рд▓рд╛рдЗрдиреЗрдВ рдФрд░ рд▓рдЧрднрдЧ 1.6kB рд▓рдЧрддреА рд╣реИрдВред
рдЕрдм рдЙрд╕реА рд╕реНрд░реЛрдд рдХреЛ рдЕрдкрд╡рд╛рдж рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдкрд░рд┐рдгрд╛рдо рдпрд╣рд╛рдВ рджреЗрдЦреЗрдВ: 253 рд▓рд╛рдЗрдиреЛрдВ рдФрд░ 8.5 kB рдХреЗ рд╕реА-рд╕рдорддреБрд▓реНрдп ред рдпрд╣рд╛рдВ рдореИрдВ рдЗрд╕реЗ рдкреЛрд╕реНрдЯ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рдореИрдВ рдЦреБрдж рдХреЛ рдореБрдЦреНрдп рд╕рдорд╛рд░реЛрд╣ (рдкреВрд░реНрд╡ рдореЗрдВ
int foo()
) рдХреЗ рд╕рд╛рде рдХреБрдЫ рдмрд┐рдВрджреБрдУрдВ рдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рддрдХ рд╕реАрдорд┐рдд рдХрд░реВрдВрдЧрд╛:
int foo__Fv(void) { static struct __T9641460 __T9653776[2] = {{((void (*)())__dt__5BBBBBFv),((unsigned short)0U),((unsigned short)65535U),((unsigned char)0U)},{((void (*)())__dt__5BBBBBFv),((unsigned short)1U),((unsigned short)0U),((unsigned char)0U)}}; auto void *__T9731464[2]; auto int __T9733536; auto struct #line 20 __T9643156 __T9734356; auto struct BBBBB b1; auto struct BBBBB b2; (__T9734356.next) = __curr_eh_stack_entry; __curr_eh_stack_entry = (&__T9734356); (__T9734356.kind) = ((unsigned char)1U); (((__T9734356.variant).function).regions) = ((struct __T9641460 *)__T9653776); (((__T9734356.variant).function).obj_table) = ((void **)__T9731464); ((( #line 25 __T9734356.variant).function).saved_region_number) = __eh_curr_region; __eh_curr_region = ((unsigned short)65535U); #line 21 __ct__5BBBBBFv((&b1)); (((void **)__T9731464)[0U]) = ((void *)(&b1)); __eh_curr_region = ((unsigned short)0U); ((b1.__b_AAAAA).a) = (bar__Fv()); process__5BBBBBFv((&b1)); __ct__5BBBBBFv((&b2)); (((void **)__T9731464)[1U]) = ((void *)(&b2)); __eh_curr_region = ((unsigned short)1U); ((b2.__b_AAAAA).a) = (bar__Fv()); process__5BBBBBFv((&b2)); { __T9733536 = ((((b1.__b_AAAAA).a)) + (((b2.__b_AAAAA).a))); __eh_curr_region = ((unsigned short)0U); __dt__5BBBBBFv((&b2), 2); __eh_curr_region = ((unsigned short)65535U); __dt__5BBBBBFv((&b1), 2); { __eh_curr_region = ((((__T9734356.variant).function).saved_region_number)); __curr_eh_stack_entry = #line 29 ((__T9734356.next)); return __T9733536; } } }
рдкреНрд░рдореБрдЦ рдкрд░рд┐рд╡рд░реНрддрди:
- рдирд┐рд░реНрдорд╛рддрд╛ рдЕрдм рдЗрдирд▓рд╛рдЗрди рдирд╣реАрдВ рд╣реИрдВ (__ct__5BBBBBBFv рдХреЙрд▓ рджрд┐рдЦрд╛рдИ рджрд┐рдП рд╣реИрдВ),
- рд╡рд┐рдзреНрд╡рдВрд╕рдХ (__dt__5BBBBBBFv) рдХреЗ рд╕рд╛рде рд╕рдорд╛рди рд╕реНрдерд┐рддрд┐,
- рдХреЛрдб рдЕрдм рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рди рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдкрд╣рд▓реЗ рд╣реА рд╣реЛ рдЪреБрдХрд╛ рд╣реИ (рдпрд╛ рдкрд╣рд▓реЗ рд╣реА рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ) рдФрд░ рдЬреЛ рдЕрднреА рддрдХ рдирд╣реАрдВ рд╣реИ - рдЪреВрдВрдХрд┐ рдЖрдкрдХреЛ рдпрд╣ рдЬрд╛рдирдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдХрд┐рди рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╡рд┐рдзреНрд╡рдВрд╕рдХ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдЕрдкрд╡рд╛рдж рдХрд╣рддреЗ рд╣реИрдВ, рддреЛ
- рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ / рд╡рд┐рдзреНрд╡рдВрд╕рдХ рдХрд╛ рдХреЛрдб рдФрд░ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реЛ рдЧрдпрд╛ рд╣реИ (рдлрд╝рдВрдХреНрд╢рди __dt__5BBBBBBFv / ct__5BBBBBFv, рд▓рд┐рдВрдХ рджреЗрдЦреЗрдВ),
рдкрд╣рд▓реЗ рджреЛ рдмрд┐рдВрджреБрдУрдВ рдХреЗ рд╕рд╛рде рдкрд░реЗрд╢рд╛рдиреА рдпрд╣ рд╣реИ рдХрд┐ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░реЛрдВ / рд╡рд┐рдзреНрд╡рдВрд╕рдХреЛрдВ рдХреЗ рддрд░реНрдХ рдЗрддрдиреЗ рдЬрдЯрд┐рд▓ рд╣реЛ рдЧрдП рд╣реИрдВ рдХрд┐ рд╕рд╛рдордиреЗ рд╡рд╛рд▓рд╛ рдЙрдиреНрд╣реЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдХреНрдпреЛрдВ - рдЙрдиреНрд╣реЗрдВ (рдЗрдирд▓рд╛рдЗрди) рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдХреЛрдб рдореЗрдВ рдПрдХ рдордЬрдмреВрдд рд╡реГрджреНрдзрд┐ рд╣реЛрдЧреА рдЬрд╣рд╛рдВ BBBB рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдирддреАрдЬрд╛ рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рд╕реА-рдХрдВрдкрд╛рдЗрд▓рд░ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ рдХрд╛рдлреА рдХрдо рдЙрддреНрдкрд╛рджрдХ рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛ (рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЛрдб рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЙрд▓ рдФрд░ рдЪреЗрдХ рд╣реИрдВ)ред
рд╡рд╣ рдпрд╣ рд╣реИ: рдХреЗрд╡рд▓ рдЕрдкрд╡рд╛рджреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рд╕реЗ рдЕрдВрддрд┐рдо рдмрд╛рдЗрдирд░реА рдлрд╝рд╛рдЗрд▓ рдХреА рдорд╛рддреНрд░рд╛ рдореЗрдВ рд╡реГрджреНрдзрд┐ рд╣реБрдИ рд╣реИ, рдФрд░ рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдПрдХ рдордВрджреА рд╣реИ рдЬрд┐рд╕рдХреЗ рднреАрддрд░ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рд╕рдмрд╕реЗ рддреБрдЪреНрдЫ рд▓реЛрдЧреЛрдВ рдХреЗ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде)ред
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдореБрдЦреНрдп рдХрд╛рд░рдг рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЕрдкрд╡рд╛рдж рдХрд╛ рд╕рдорд░реНрдерди рдПрдореНрдмреЗрдбреЗрдб рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ - рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рднреБрдЧрддрд╛рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рднрд▓реЗ рд╣реА рдЗрд╕рдХрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдкрдпреЛрдЧ рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛред
рдкреБрдирд╢реНрдЪ: рдпрд╣ рд╕рдм, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ "рдЕрдкрд╡рд╛рдж рдмреБрд░реЗ рд╣реИрдВ!" рдпрд╛ "рдЕрдкрд╡рд╛рджреЛрдВ рдХреЗ рдмрдЬрд╛рдп рд░рд┐рдЯрд░реНрди рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ!"ред рдмрд╕ рд╣рд░ рдЙрдкрдХрд░рдг рдЕрдкрдиреЗ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╣реИред
PPS: рдПрдореНрдмреЗрдбреЗрдб рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рддреНрд░реБрдЯрд┐ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╡рд╣рд╛рдБ рд╣реИ рдФрд░ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд╣ рдЖрдорддреМрд░ рдкрд░ C ++ рдЕрдкрд╡рд╛рджреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдПрдХ рдЕрд▓рдЧ рд▓реЗрдЦ рдХрд╛ рд╡рд┐рд╖рдп рд╣реИред