ΠΠ°ΠΊ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, Π² ΡΠ·ΡΠΊΠ΅ Π‘ΠΈ Π΄Π»Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ ΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ Π½Π° ΠΊΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ malloc()
ΠΈ free()
. Π Π‘++ Π΄Π»Ρ ΡΡΠΈΡ
ΡΠ΅Π»Π΅ΠΉ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ new
ΠΈ delete
. ΠΠΎΠ³Π΄Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ new
Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΠΈΡΡ Π·Π°ΠΏΡΠΎΡ Π½Π° Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ, ΠΎΠ½ Π²ΠΎΠ·Π±ΡΠΆΠ΄Π°Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ std::bad_alloc
, ΡΠΈΠ³Π½Π°Π»ΠΈΠ·ΠΈΡΡΡ ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅. Π C++ Π΄Π»Ρ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΡΠΊΠ»ΡΡΡΠ½ Π΄Π»Ρ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΈ ΡΠ΅ΡΡΡΡΠΎΠ², ΠΎΠ΄Π½Π°ΠΊΠΎ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π‘++, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π²ΠΎΠ·Π±ΡΠ΄ΠΈΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ std::bad_alloc
, ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ new
Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ-ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ. ΠΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ std::set_new_handler
, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Ρ
ΠΎΡΡ ΠΊΠ°ΠΊ-ΡΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ / ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ Π½Π° ΠΊΡΡΠ΅ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠΎ ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π²Π΅ΡΡ
ΡΡΠΊΠ° Π°ΠΉΡΠ±Π΅ΡΠ³Π°, Π° Π½ΠΈΠΆΠ΅ ΠΎΠΏΠΈΡΠ°Π½Ρ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠ΅ ΠΈ Π½Π°Π΄ΡΠΆΠ½ΡΠ΅ ΠΏΡΠΈΡΠΌΡ. Π§ΡΠΎΠ±Ρ Π±ΡΠ»ΠΎ Π½Π΅ΡΠΊΡΡΠ½ΠΎ, Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ΅ΡΡΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π° Π²Π·ΡΡΠ° ΠΈΠ³ΡΠ° Β«ΠΠΌΠ΅ΠΉΠΊΠ°Β».
MSP430.js | ΠΈΡΡ
ΠΎΠ΄Π½ΠΈΠΊΠΈ
-
ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ new
ΠΈ delete
Π² Π‘++ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ°ΡΡ, Π° Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π²Π΅ΡΡΠΌΠ° ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ Π²ΠΎΠΎΠ±ΡΠ΅ ΡΠ»ΠΎΠΌΠ°ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ Π½Π° ΠΊΡΡΠ΅ no-new.h. ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΠ»Π° Π²ΠΎ Π²ΡΠ΅Ρ
ΠΈΡΡ
ΠΎΠ΄Π½ΡΡ
ΡΠ°ΠΉΠ»Π°Ρ
ΠΏΡΠΎΠ΅ΠΊΡΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π² gcc ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ
ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°Ρ
Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠΊΠ°Π·Π°ΡΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΠΎΠΏΡΠΈΡ -include no-new.h
, Π² ΡΠ»ΡΡΠ°Π΅ ΡΠΎ Β«ΠΠΌΠ΅ΠΉΠΊΠΎΠΉΒ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ IDE Code Composer Studio, ΡΠ°ΠΌ Π΅ΡΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° --preinclude. Π§ΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ Π½Π°ΡΠ»Π΅Π΄ΠΈΡ Π‘ΠΈ β ΡΡΠ½ΠΊΡΠΈΠΉ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ malloc
, calloc
, realloc
β ΡΠΎ ΠΊΡΠ°ΡΠΈΠ²ΠΎ ΠΎΡΡΠ΅ΠΏΠΈΡΡ ΠΈΡ
ΡΠ²Ρ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ. Π£ gcc ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ² Π΅ΡΡΡ Π²ΠΎΠ»ΡΠ΅Π±Π½ΡΠΉ ΡΠ»Π°Π³ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΡΠΈΠΊΠ° -Wl,--wrap=malloc
, ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΡΠ°Π²ΠΈΡΡ ΠΎΠ±ΡΡΡΠΊΠΈ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΠΎΠΊΠ°ΠΆΡ ΡΡΡΡ ΠΏΠΎΠ·ΠΆΠ΅
-
Β«ΠΠΌΠ΅ΠΉΠΊΠ°Β» ΠΊΡΡΠ°Π΅Ρ ΠΈ ΡΠ°ΡΡΡΡ, Ρ.Π΅. ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ· ΡΠ΅Π±Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ°ΡΡΠΈΠ². ΠΠ»Ρ STL ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² Π² Π‘++ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Π²Π°ΡΡ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠ΅ Π°Π»Π»ΠΎΠΊΠ°ΡΠΎΡΡ ΠΏΠ°ΠΌΡΡΠΈ. Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π·Π½Π°Π΅Ρ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ Π΅Π³ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΈ ΡΠΎΠ³Π΄Π° Ρ
ΠΎΡΠΎΡΠ΅ΠΉ ΠΈΠ΄Π΅Π΅ΠΉ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π°Π»Π»ΠΎΠΊΠ°ΡΠΎΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΉ ΡΡΠ΅ΠΊ Π²ΠΌΠ΅ΡΡΠΎ ΠΊΡΡΠΈ. ΠΠ»Ρ Π΄ΡΠ΅Π²Π½Π΅Π³ΠΎ C++98 Π½Π°ΠΉΡΠΈ ΡΠ°Π±ΠΎΡΠΈΠΉ Π°Π»Π»ΠΎΠΊΠ°ΡΠΎΡ Π·Π°ΡΡΡΠ΄Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ Π΄Π»Ρ ΠΈΠ³ΡΡ Β«ΠΠΌΠ΅ΠΉΠΊΠ°Β» Π±ΡΠ» Π²Π·ΡΡ ΡΡΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΉ ΡΡΠ΅ΠΊ Π²ΠΌΠ΅ΡΡΠΎ ΠΊΡΡΠΈ
-
ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΎΡΠΎΠ±Π°Ρ ΡΠΎΡΠΌΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° new
, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠ°Ρ Placement new. ΠΠ°Π½Π½ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π½Π΅ Π²ΡΠ΄Π΅Π»ΡΠ΅Ρ ΠΏΠ°ΠΌΡΡΡ, Π° ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠ²ΠΎΠΈΠΌ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ Π°Π΄ΡΠ΅Ρ Π½Π° ΡΠΆΠ΅ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΡ ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΏΠ°ΠΌΡΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠ°ΠΌΡΡΡ ΠΏΠΎΠ΄ ΠΎΠ±ΡΠ΅ΠΊΡ Β«ΠΠΌΠ΅ΠΉΠΊΠ°Β» Π²ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ Π² ΡΡΠ΅ΠΊΠ΅ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, Π° ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ (ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ) ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π² Π½Π΅ΠΉ ΠΏΡΡΡΠΌ Π²ΡΠ·ΠΎΠ²Π° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Β«ΠΠΌΠ΅ΠΉΠΊΡΒ» ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ΅ ΠΈΠ³ΡΡ
ΠΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌ Β«ΠΠΌΠ΅ΠΉΠΊΠΈΒ» QP/C++ ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΠ°Ρ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ° ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ UML:
ΠΠ° ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ΅ ΠΈΠ΅ΡΠ°ΡΡ
ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ Π°Π²ΡΠΎΠΌΠ°Ρ Play Π³Π΄Π΅ ΠΎΡΡΡΠΈΡΡΠ²Π°ΡΡΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Ρ Π΄Π»Ρ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ Β«ΠΠΌΠ΅ΠΉΠΊΠΈΒ» ΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΠΎΡ ΠΊΠ½ΠΎΠΏΠΎΠΊ. ΠΡΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄ eat_or_move()
Π²Π΅ΡΠ½ΡΡ false
ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ GameOver Π³Π΄Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π½Π°Π±ΡΠ°Π½Π½ΡΡ
ΠΎΡΠΊΠΎΠ². ΠΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ Π»ΡΠ±ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΡΠ½ΠΎΠ²Π° Play.
Β«ΠΠΌΠ΅ΠΉΠΊΠ°Β» ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ· ΡΠ΅Π±Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ°ΡΡΠΈΠ² ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΎΠ² (ΠΊΠ²Π°Π΄ΡΠ°ΡΠΈΠΊΠΎΠ²), Π΄Π»Ρ Π΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠ΅Π³ΠΌΠ΅Π½Ρ Π³ΠΎΠ»ΠΎΠ²Ρ Π² ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠ½Π΅Ρ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΈ ΡΠ΄Π°Π»ΠΈΡΡ ΡΠ΅Π³ΠΌΠ΅Π½Ρ Ρ
Π²ΠΎΡΡΠ° β ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Ρ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ°. ΠΠ° ΡΠΊΡΠ°Π½Π΅ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΎΡΠΈΡΡΠΈΡΡ Ρ
Π²ΠΎΡΡ ΠΈ Π΄ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ Π³ΠΎΠ»ΠΎΠ²Ρ. ΠΡΠΈ ΠΏΠΎΠ΅Π΄Π°Π½ΠΈΠΈ ΠΏΠΈΡΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ ΡΠ΅Π³ΠΌΠ΅Π½Ρ Π³ΠΎΠ»ΠΎΠ²Ρ, Π° ΡΠ΅Π³ΠΌΠ΅Π½Ρ Ρ
Π²ΠΎΡΡΠ° Π½Π΅ ΡΠ΄Π°Π»ΡΠ΅ΡΡΡ.
ΠΠ°Π»Π΅Π΅ ΠΏΠ°ΡΡΠ΅ΡΠ½ Β«ΠΠ°Π±Π»ΡΠ΄Π°ΡΠ΅Π»ΡΒ».
There are comments.