рдХреНрдпрд╛ рдЖрдк рдЕрднреА рднреА рдЙрдмрд▓ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХреА рддреБрд▓рдирд╛ рд╢реВрдиреНрдп рд╕реЗ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

рдПрдХ рдмрд╛рд░ рдПрдХ рджреВрд░ рдХреА рдЖрдХрд╛рд╢рдЧрдВрдЧрд╛ рдореЗрдВ, MFC рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕рдореЗрдВ рдХрдИ рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рддрд░реАрдХреЛрдВ рдХреА рддреБрд▓рдирд╛ рд╢реВрдиреНрдп рд╕реЗ рдХреА рдЧрдИ рдереАред рдХреБрдЫ рдЗрд╕ рддрд░рд╣:

class CWindow { HWND handle; HWND GetSafeHandle() const { return this == 0 ? 0 : handle; } }; 

"рдЗрд╕рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ," рдкрд╛рдардХ рдХреЛ рдЖрдкрддреНрддрд┐ рд╣реЛрдЧреАред рдЗрд╕рдХрд╛ рдПрдХ "рд╣реИ" рднреА рд╣реИ: рдпрд╣ рдХреЛрдб "рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ" рдХреЛ рдЧреЗрдЯреНрд╕рдлреИрдВрдбрд▓ () рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП null рдкреЙрдЗрдВрдЯрд░ CWindow * рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗред рдЗрд╕ рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рдордп-рд╕рдордп рдкрд░ рд╡рд┐рднрд┐рдиреНрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдмреБрд░рд╛ рд╡рд┐рдЪрд╛рд░ рдХреНрдпреЛрдВ рд╣реИред

рд╣рдореЗрдВ рдЗрд╕ рддрдереНрдп рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐, рд╕реА ++ рдорд╛рдирдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░ (рдЖрдИрдПрд╕рдУ / рдЖрдИрдИрд╕реА 14882: 2003 (рдИ) рдорд╛рдирдХ рдХреЗ 5.2.5 / 3 рд╕реЗ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░), рдХрд┐рд╕реА рднреА рд╡рд░реНрдЧ рдХреЗ рдХрд┐рд╕реА рднреА рдЧреИрд░-рд╕реНрдерд┐рд░ рддрд░реАрдХреЗ рдХреЛ рдПрдХ рд╢реВрдиреНрдп рд╕реВрдЪрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реЛрддрд╛ рд╣реИред рдлрд┐рд░ рднреА, рдХрдИ рдХреНрд░рд┐рдпрд╛рдиреНрд╡рдпрдиреЛрдВ рдореЗрдВ, рдЗрд╕ рддрд░рд╣ рдХрд╛ рдХреЛрдб рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ:
 class Class { public: void DontAccessMembers() { ::Sleep(0); } }; int main() { Class* object = 0; object->DontAccessMembers(); } 

рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдЬрдм рд╡рд┐рдзрд┐ рдЪрд▓ рд░рд╣реА рд╣реИ, рддреЛ рдХрдХреНрд╖рд╛ рдХреЗ рд╕рджрд╕реНрдпреЛрдВ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХрд╛ рдХреЛрдИ рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рд╣реИ, рдФрд░ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЗрд░ рд╕реЗ рдмрд╛рдзреНрдпрдХрд╛рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХрдВрдкрд╛рдЗрд▓рд░ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕ рд╡рд░реНрдЧ рдХреЛ рдХрд┐рд╕ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдмрд╕ рдЗрд╕ рд╡рд┐рдзрд┐ рдореЗрдВ рдПрдХ рдХреЙрд▓ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдкреНрд░рднрд╛рд╡ рд╡реИрд╕рд╛ рд╣реА рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рд╡рд┐рдзрд┐ рд╕реНрдерд┐рд░ рдереА:
 class Class { public: static void DontAccessMembers(Class* currentObject) { ::Sleep(0); } }; int main() { Class* object = 0; Class::DontAccessMembers(object); } 

рдпрджрд┐ рд╡рд┐рдзрд┐ рдХреЛ рд╡рд╕реНрддреБрддрдГ рдХрд╣рд╛ рдЬрд╛рддрд╛ рдерд╛, рддреЛ рджреЗрд░ рд╕реЗ рдмрд╛рдзреНрдпрдХрд╛рд░реА рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛, рдЬреЛ рдЖрдорддреМрд░ рдкрд░ рдПрдХ рд╕рдВрдХреЗрддрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд╕реНрддреБ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╡рд░реНрдЪреБрдЕрд▓ рд╡рд┐рдзрд┐ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХрд┐рд╕ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдпрд╣ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рд╕рд╛рдордЧреНрд░реА рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдФрд░ рдПрдХ рд╢реВрдиреНрдп рдкреЙрдЗрдВрдЯрд░ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рд▓реЗрдХрд┐рди рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░реА рдкрджреНрдзрддрд┐ рдХреЛ рд╡рд╕реНрддреБрддрдГ рдХрднреА рд╕рд╣реА рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛? рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рдХреЛрдб рдХреБрдЫ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рд╡рд╣рд╛рдВ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред

рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдХрдВрдкрд╛рдЗрд▓рд░ рдЕрдиреБрдХреВрд▓рди рдХреЗ рд▓рд┐рдП рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:
 int divideBy = тАж; whatever = 3 / divideBy; if( divideBy == 0 ) { // THIS IS IMPOSSIBLE } 

рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдореЗрдВ, divideBy рджреНрд╡рд╛рд░рд╛ рдкреВрд░реНрдгрд╛рдВрдХ рд╡рд┐рднрд╛рдЬрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╢реВрдиреНрдп рд╕реЗ рдкреВрд░реНрдгрд╛рдВрдХ рд╡рд┐рднрд╛рдЬрди рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ (рдЖрдорддреМрд░ рдкрд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдХреНрд░реИрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП)ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдо рдорд╛рди рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЪрд░ divideBy рд╢реВрдиреНрдп рдХреЗ рдмрд░рд╛рдмрд░ рдирд╣реАрдВ рд╣реИ, рдФрд░ рд╕рдВрдХрд▓рди рдЪрд░рдг рдореЗрдВ, рд╕рддреНрдпрд╛рдкрди рдХреЛ рдмрд╛рд╣рд░ рдХрд░реЗрдВ рдФрд░ рддрджрдиреБрд╕рд╛рд░ рдХреЛрдб рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдХрд░реЗрдВред

рдЙрд╕реА рддрд░рд╣, рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛрдб рдХреА рддреБрд▓рдирд╛ рд╢реВрдиреНрдп рд╕реЗ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдорд╛рдирдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдпрд╣ рд╢реВрдиреНрдп рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛; рддрджрдиреБрд╕рд╛рд░, рдЪреЗрдХ рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рдХреЛрдб рд╢рд╛рдЦрд╛рдУрдВ рдХреЛ рдмрд╛рд╣рд░ рд░рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдХреЛрдб рдХреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░реЗрдЧрд╛, рдЬреЛ рд╢реВрдиреНрдп рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ "рдмреНрд░реЗрдХ" (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдмреНрд░реЗрдХ) CWindow :: GetSafeHandle () рдХреЛрдб рдФрд░ рдорд╢реАрди рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХрд╛ рдкреВрд░реНрдг рдЕрдзрд┐рдХрд╛рд░ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХреЛрдИ рддреБрд▓рдирд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрд▓рд╛рд╕ рдлрд╝реАрд▓реНрдб рд╣рдореЗрд╢рд╛ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЕрдм рддрдХ, рдЖрдо рд╕рдВрдХрд▓рдХ рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг (рдЖрдк рдЬреАрд╕реАрд╕реА рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ) рдЗрд╕ рддрд░рд╣ рдХреЗ рдЕрдиреБрдХреВрд▓рди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЕрднреА "рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ", рдареАрдХ рд╣реИ?

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдШреГрдгрд╛ рдХрд░реЗрдВ рдЬрдм рдЖрдк рдПрдХ рджреВрд╕рд░реЗ рдХрдВрдкрд╛рдЗрд▓рд░ рдпрд╛ рдЙрд╕реА рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдмрд╣реБрдд рджреБрдЦреА рд╣реЛрдВрдЧреЗ, рддреЛ рдЖрдк рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рдордп рдмрд┐рддрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдЕрдм рдРрд╕рд╛ рдЕрдиреБрдХреВрд▓рди рдХреНрдпрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдКрдкрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдХреЛрдб рдкреЛрд░реНрдЯреЗрдмрд▓ рдирд╣реАрдВ рд╣реИред

рджреВрд╕рд░реЗ,
 class FirstBase { int firstBaseData; }; class SecondBase { public: void Method() { if( this == 0 ) { printf( "this == 0"); } else { printf( "this != 0 (value: %p)", this ); } } }; class Composed1 : public FirstBase, public SecondBase { }; int main() { Composed1* object = 0; object->Method(); } 

WELL SHOULD, рдЬрдм рд╡рд┐рдЬреБрдЕрд▓ C ++ 9 рдкрд░ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╡рд┐рдзрд┐ рдХреЗ рдкреНрд░рд╡реЗрд╢ рджреНрд╡рд╛рд░ рдкрд░ рдпрд╣ рдкреЙрдЗрдВрдЯрд░ 0x00000004 рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╢реБрд░реВ рдореЗрдВ null рдкреЙрдЗрдВрдЯрд░ рдХреЛ рд╕рдВрдмрдВрдзрд┐рдд рд╡рд░реНрдЧ рдХреЗ рд╕рдмреЛрдмрд┐рдЬ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдФрд░ рдЕрдЧрд░ рдЖрдк рдЖрдзрд╛рд░ рд╡рд░реНрдЧреЛрдВ рдХреЗ рдХреНрд░рдо рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВ
 class Composed2 : public SecondBase, public FirstBase { }; int main() { Composed2* object = 0; object->Method(); } 

рд╕рдорд╛рди рд╢рд░реНрддреЛрдВ рдХреЗ рддрд╣рдд, рдпрд╣ рд╢реВрдиреНрдп рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╕рдмрдЬреЗрдХреНрдЯ рдХреА рд╢реБрд░реБрдЖрдд рдЙрд╕ рд╡рд╕реНрддреБ рдХреА рд╢реБрд░реБрдЖрдд рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рд╢рд╛рдорд┐рд▓ рд╣реИред рдпрд╣ рдПрдХ рдЕрджреНрднреБрдд рд╡рд░реНрдЧ рдирд┐рдХрд▓рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреА рд╡рд┐рдзрд┐ рд╕рдордЧреНрд░ рд╡рд╕реНрддреБрдУрдВ рдореЗрдВ рдЗрд╕ рд╡рд░реНрдЧ рдХреЗ "рд╕рд╣реА" рдЙрдкрдпреЛрдЧ рдХреА рд╢рд░реНрдд рдХреЗ рддрд╣рдд рд╣реА рдХрд╛рдо рдХрд░рддреА рд╣реИред рдЦреБрд╢ рдбрд┐рдмрдЧрд┐рдВрдЧ, рдбрд╛рд░реНрд╡рд┐рди рдкреБрд░рд╕реНрдХрд╛рд░ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдЗрддрдирд╛ рдХрд░реАрдм рдирд╣реАрдВ рд╣реИред

рдпрд╣ рджреЗрдЦрдирд╛ рдЖрд╕рд╛рди рд╣реИ рдХрд┐ Composed1 рд╡рд░реНрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреЙрдЗрдВрдЯрд░ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдкреЙрдЗрдВрдЯрд░ рдХрд╛ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд░реВрдкрд╛рдВрддрд░рдг "рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ" рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ - рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рд╢реВрдиреНрдп рдкреЙрдЗрдВрдЯрд░ рдХреЗ рд▓рд┐рдП, рд░реВрдкрд╛рдВрддрд░рдг рд╕рдм -рдЬреЗрдХреНрдЯ рдкрд░ рдПрдХ рдЧреИрд░-рд╢реВрдиреНрдп рдкреЙрдЗрдВрдЯрд░ рджреЗрддрд╛ рд╣реИред рдЖрдорддреМрд░ рдкрд░, рдПрдХ рд╣реА рд░реВрдкрд╛рдВрддрд░рдг рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╕рдордп, рдХрдВрдкрд╛рдЗрд▓рд░ рдПрдХ рд╕реВрдЪрдХ рдХреЛ рд╢реВрдиреНрдп рдХреА рд╕рдорд╛рдирддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЪреЗрдХ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд╕рд╛рде рдРрд╕реЗ рдХреЛрдб рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ (Composed1 рд╡рд░реНрдЧ рдКрдкрд░ рдХреЗ рд╕рдорд╛рди рд╣реИ):

 SecondBase* object = reinterpret_cast<Composed1*>( rand() ); object->Method(); 

рджреГрд╢реНрдп C ++ 9 рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд╢реАрди рдХреЛрдб рджреЗрддрд╛ рд╣реИ:
 SecondBase * рдСрдмреНрдЬреЗрдХреНрдЯ = reinterpret_cast <Composed1 *> (рд░реИрдВрдб ());
 010C1000 рдХреЙрд▓ рдбреНрд░рд╛рдлреНрдЯ ptr [__imp__rand (10C209Ch)] 
 010C1006 рдЯреЗрд╕реНрдЯ рдИрдПрдХреНрд╕, рдИрдПрдХреНрд╕рдПрдХреНрд╕
 010C1008 je wmain + 0Fh (10C100Fh) 
 010C100A рдЬреЛрдбрд╝реЗрдВ eax, 4 
 рдСрдмреНрдЬреЗрдХреНрдЯ-> рд╡рд┐рдзрд┐ ();
 010C100D jne wmain + 20h (10C1020h) 
 010C100F рдкреБрд╢ рдСрдлрд╕реЗрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧ "рдпрд╣ == 0" (10C20F4h) 
 010C1014 рдХреЙрд▓ рдбреНрд░рд╛рдлреНрдЯ ptr [__imp__printf (10C20A4h)] 
 010C101A esp рдЬреЛрдбрд╝реЗрдВ, 4 

рдЗрд╕ рдорд╢реАрди рдХреЛрдб рдореЗрдВ, рджреВрд╕рд░рд╛ рдирд┐рд░реНрджреЗрд╢ рдкреЙрдЗрдВрдЯрд░ рдХреА рддреБрд▓рдирд╛ рд╢реВрдиреНрдп рдХреЗ рд╕рд╛рде рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдпрджрд┐ рдкреЙрдЗрдВрдЯрд░ рд╢реВрдиреНрдп рд╣реИ, рддреЛ рдХрдВрдЯреНрд░реЛрд▓ рдИрдбреАрдПрдХреНрд╕, 4 рдЗрдВрд╕реНрдЯреНрд░рдХреНрд╢рди рд╕реЗ рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдкреЙрдЗрдВрдЯрд░ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдВ рдирд┐рд╣рд┐рдд рд░реВрдкрд╛рдВрддрд░рдг рд╕рддреНрдпрд╛рдкрди рдХреЗ рд╕рд╛рде рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдкреЙрдЗрдВрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрд╛рдж рдХреЗ рд╡рд┐рдзрд┐ рдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдФрд░ рдкреЙрдЗрдВрдЯрд░ рдЧреИрд░-рд╢реВрдиреНрдп рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рднреА рд╕рдВрднрд╡ рдерд╛ред

рдкрд╣рд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ (рд╕рдмрдЬреЗрдХреНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рд╡рд┐рдзрд┐ рдХреЛ рд╕реАрдзреЗ рдкреЙрдЗрдВрдЯрд░ рд╕реЗ рдХреНрд▓рд╛рд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рдХреЙрд▓ рдХрд░рддреЗ рд╣реБрдП), рд╢реВрдиреНрдп рдкрд░ рд░рд┐рдбреНрдпреВрд╕рдмрд▓ рдкреЙрдЗрдВрдЯрд░ рдХреА рд╕рдорд╛рдирддрд╛ рднреА рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИ, рдФрд░ рдпрд╣рд╛рдВ рдЪреЗрдХ рдХреЛ рдЬреЛрдбрд╝рд╛ рдирд╣реАрдВ рдЧрдпрд╛ рд╣реИред рдпрджрд┐, рд╡рд┐рдзрд┐ рдХреЙрд▓ рдХреЗ рд╕рд╛рде рдХреЛрдб рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдХреЛ рдкрдврд╝рддреЗ рд╣реБрдП рдФрд░ рдлрд┐рд░ рдкреЙрдЗрдВрдЯрд░ рдХреЛ рд╢реВрдиреНрдп рдкрд░ рдЪреЗрдХ рдХрд░рддреЗ рд╣реБрдП, рдЖрдкрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдпрд╣ рдмрдХрд╡рд╛рд╕ рдФрд░ рдлрдВрддрд╛рд╕реА рдереА, рдпрд╣ рд╡реНрдпрд░реНрде рд╣реИ, рдЙрдкрд░реЛрдХреНрдд рдорд╛рдорд▓реЗ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЕрдиреБрдХреВрд▓рди рдХреЛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЕрд╢рдХреНрдд рд╕реВрдЪрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдЧреИрд░-рд╕реНрдереИрддрд┐рдХ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рдирд╛ рдПрдХ рдмреБрд░рд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЛ рдЕрд╢рдХреНрдд рдкреЙрдЗрдВрдЯрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдзрд┐ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рд╡рд┐рдзрд┐ рдХреЛ рд╕реНрдерд┐рд░ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдкреЙрдЗрдВрдЯрд░ рдХреЛ рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рджрд┐рдорд┐рддреНрд░реА рдореЗрд╢реНрдЪреЗрд░реАрдХреЛрд╡,
рдбреЗрд╡рд▓рдкрд░ рдЙрддреНрдкрд╛рдж рд╡рд┐рднрд╛рдЧ

Source: https://habr.com/ru/post/In205070/


All Articles