Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π·Π°ΠΏΡΠ΅ΡΠ° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ (nonthrowing specification). Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΠΎΠ±Π΅ΡΠ°ΡΡΠ°Ρ, ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ. ΠΡΠ»ΠΈ ΡΠ°ΠΊΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΡΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΠ·Π²Π°Π½Π° ΡΡΠ½ΠΊΡΠΈΡ terminate(). Π ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°ΠΌ Π·Π°ΠΏΡΠ΅ΡΠ° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΡΠ½ΠΎΡΡΡΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ noexcept Π±Π΅Π· Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΈΠ»ΠΈ Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠΈΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ true, Π° ΡΠ°ΠΊΠΆΠ΅ throw().
Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ (file static). ΠΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ΅ Π΄Π»Ρ ΡΠ°ΠΉΠ»Π° ΠΈΠΌΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΡΠ»ΠΎ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΎ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° static. Π ΡΠ·ΡΠΊΠ΅ Π‘ ΠΈ Π²Π΅ΡΡΠΈΡΡ ΡΠ·ΡΠΊΠ° Π‘++, Π²ΡΠΏΡΡΠ΅Π½Π½ΡΡ Π΄ΠΎ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ°, ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ Π΄Π»Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΡΠ°ΠΊΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΎΠ΄Π½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅. ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΎΡΡΠΆΠ΄Π΅Π½ΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠΌ Π‘++. Π‘Π΅ΠΉΡΠ°Ρ ΠΎΠ½ΠΈ Π·Π°ΠΌΠ΅Π½Π΅Π½Ρ Π±Π΅Π·ΡΠΌΡΠ½Π½ΡΠΌΠΈ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π°ΠΌΠΈ ΠΈΠΌΠ΅Π½.
Π€ΡΠ½ΠΊΡΠΈΡ terminate(). ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ, Π²ΡΠ·ΠΎΠ² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² ΡΠ»ΡΡΠ°Π΅, ΠΊΠΎΠ³Π΄Π° ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π»ΠΈΠ±ΠΎ ΡΠ°ΠΊ ΠΈ Π½Π΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½ΠΎ, Π»ΠΈΠ±ΠΎ Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π½ΠΎ Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ. Π€ΡΠ½ΠΊΡΠΈΡ terminate() Π·Π°Π²Π΅ΡΡΠ°Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠ»Π°Π²Π° 19
Π‘ΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ
Π ΠΏΠ΅ΡΠ²ΡΡ ΡΡΠ΅Ρ ΡΠ°ΡΡΡΡ ΡΡΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ±ΡΡΠΆΠ΄Π°Π»ΠΈΡΡ Π°ΡΠΏΠ΅ΠΊΡΡ ΡΠ·ΡΠΊΠ° Π‘++, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ΅ΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°ΠΌΠΈ Π‘++. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΠ·ΡΠΊ Π‘++ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π°, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΊΡΠ°ΠΉΠ½Π΅ ΡΠ΅Π΄ΠΊΠΎ ΠΈΠ»ΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π²ΠΎΠΎΠ±ΡΠ΅.
Π―Π·ΡΠΊ Π‘++ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ°ΠΌΡΡ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΎΠ½ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ, Π½Π΅Π½ΡΠΆΠ½ΡΠΌΠΈ Π΄Π»Ρ ΠΎΠ΄Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌΠΈ Π² Π΄ΡΡΠ³ΠΈΡ . Π ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ΅Π΄ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° ΡΠ·ΡΠΊΠ° Π‘++.
19.1. ΠΠΎΠ½ΡΡΠΎΠ»Ρ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½ΡΠΆΠ΄Π°ΡΡΡΡ Π² ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΏΠ°ΠΌΡΡΠΈ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π½Π΅ ΠΌΠΎΠ³ΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΡΡ. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠ°ΠΊΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π²ΡΠ½ΡΠΆΠ΄Π΅Π½Ρ Π²Π½ΠΈΠΊΠ°ΡΡ Π² ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° new Π΄Π»Ρ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π² ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²ΠΈΠ΄Ρ ΠΏΠ°ΠΌΡΡΠΈ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΈΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ new ΠΈ delete ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ.
19.1.1. ΠΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² new ΠΈ delete
Π₯ΠΎΡΡ Π³ΠΎΠ²ΠΎΡΡΡ, ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ "ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΈΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ new ΠΈ delete", ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠ° ΡΡΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² Π²Π΅ΡΡΠΌΠ° ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΡΠΏΠΎΡΠΎΠ±Π° ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ². Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΈΡΡ, ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ½Π°ΡΠ°Π»Π° ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ new ΠΈ delete.
ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ new ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ°ΠΊ:
// Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ new
string *sp = new string("a value"); // Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°ΡΡ ΠΈ
// ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡΠΎΠΊΡ
string *arr = new string[10]; // Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°ΡΡ Π΄Π΅ΡΡΡΡ ΡΡΡΠΎΠΊ,
// ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ
// ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π΄Π΅ΡΡ ΡΡΠΈ ΡΡΠ°ΠΏΠ°: ΡΠ½Π°ΡΠ°Π»Π° Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ operator new() (ΠΈΠ»ΠΈ operator new[]()). ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΡΠ΅Ρ Π½Π΅ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΎΠ±Π»Π°ΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π΄Π»Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° (ΠΈΠ»ΠΈ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²) ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°. ΠΠ°ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ, ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ (ΠΎΠ±ΡΠ΅ΠΊΡΡ) ΠΈΠ· ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠ². Π Π½Π°ΠΊΠΎΠ½Π΅Ρ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π²Π½ΠΎΠ²Ρ Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΈ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ.
ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ delete ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°:
delete sp; // ΡΠ΄Π°Π»ΠΈΡΡ *sp ΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡΡ ΠΏΠ°ΠΌΡΡΡ,
// Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ sp
delete [] arr; // ΡΠ΄Π°Π»ΠΈΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡΡ ΠΏΠ°ΠΌΡΡΡ
ΠΠ΄Π΅ΡΡ Π΄Π²Π° ΡΡΠ°ΠΏΠ°: ΡΠ½Π°ΡΠ°Π»Π° Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ sp, ΠΈΠ»ΠΈ Π΄Π»Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²Π°, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΈΠΌΡ arr, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ Π΄Π΅ΡΡΡΡΠΊΡΠΎΡ. ΠΠ°ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅Ρ ΠΏΠ°ΠΌΡΡΡ, Π²ΡΠ·Π²Π°Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ operator delete() ΠΈΠ»ΠΈ operator delete[]() ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ.
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ±ΠΈΡΠ°ΡΡΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ operator new() ΠΈ operator delete(). ΠΠ°ΠΆΠ΅ ΠΏΡΠΈ ΡΠΎΠΌ, ΡΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ, Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ, ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π½Π΅ ΠΏΠΎΠΆΠ°Π»ΡΠ΅ΡΡΡ Π½Π° Π΄Π²ΠΎΠΉΠ½ΠΎΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΡΡ Π²Π΅ΡΡΠΈΡ, Π° Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ.
ΠΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ operator new() ΠΈ operator delete() Π²ΡΡ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΡ Π·Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ Π»ΠΎΠΆΠΈΡΡΡ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°. ΠΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½Ρ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠ²Π»ΡΡΡΡΡ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎ Π²Π°ΠΆΠ½ΠΎΠΉ ΡΠ°ΡΡΡΡ Π²ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
Π€ΡΠ½ΠΊΡΠΈΠΈ operator new() ΠΈ operator delete() ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π² Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ-ΡΠ»Π΅Π½Ρ. ΠΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π²ΡΡΡΠ΅ΡΠ°Π΅Ρ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ new ΠΈΠ»ΠΈ delete, ΠΎΠ½ ΠΈΡΠ΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ Π²ΡΠ·ΠΎΠ²Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°. ΠΡΠ»ΠΈ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΡΠ΅ΠΌΡΠΉ (ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅ΠΌΡΠΉ) ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΠΏ ΠΊΠ»Π°ΡΡΠ°, ΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΈΡΠ΅Ρ ΡΠ½Π°ΡΠ°Π»Π° Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ ΠΊΠ»Π°ΡΡΠ°, Π²ΠΊΠ»ΡΡΠ°Ρ Π²ΡΠ΅ Π΅Π³ΠΎ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΊΠ»Π°ΡΡΡ. ΠΡΠ»ΠΈ Ρ ΠΊΠ»Π°ΡΡΠ° Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ-ΡΠ»Π΅Π½Ρ operator new() ΠΈ operator delete(), ΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΈ new ΠΈΠ»ΠΈ delete. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΈΡΠ΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π² Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ. ΠΡΠ»ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΡΡ Π²Π΅ΡΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΎΠ½ Π΅Π΅ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ new ΠΈΠ»ΠΈ delete. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²Π΅ΡΡΠΈΡ ΠΈΠ· ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ.
Π§ΡΠΎΠ±Ρ Π·Π°ΡΡΠ°Π²ΠΈΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ new ΠΈΠ»ΠΈ delete ΠΎΠ±ΠΎΠΉΡΠΈ ΡΡΠ½ΠΊΡΠΈΡ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠΌ, ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΠΊΠΎΠ²ΡΡ ΠΈΠ· Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ::new ΠΈΠΌΠ΅Π΅Ρ Π² Π²ΠΈΠ΄Ρ ΡΡΠ½ΠΊΡΠΈΡ operator new() ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ· Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ. ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ Π΄Π»Ρ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ::delete.
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΡΡΠ½ΠΊΡΠΈΠΉ operator new() ΠΈ operator delete()ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π²ΠΎΡΠ΅ΠΌΡ ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ΅Π½Π½ΡΡ Π²Π΅ΡΡΠΈΠΉ ΡΡΠ½ΠΊΡΠΈΠΉ operator new() ΠΈ operator delete(). ΠΠ΅ΡΠ²ΡΠ΅ ΡΠ΅ΡΡΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° new ΡΠΏΠΎΡΠΎΠ±Π½Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ bad_alloc. Π‘Π»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ΅ΡΡΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° new Π½Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ:
// Π²Π΅ΡΡΠΈΠΈ, ΡΠΏΠΎΡΠΎΠ±Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ
void *operator new(size_t); // ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ
void *operator new[](size_t); // ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΡΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ²
void *operator delete(void*) noexcept; // ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ
void *operator delete[](void*) noexcept; // ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅Ρ ΠΌΠ°ΡΡΠΈΠ²
// Π²Π΅ΡΡΠΈΠΈ, ΠΎΠ±Π΅ΡΠ°ΡΡΠΈΠ΅ Π½Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ; ΡΠΌ. p. 12.1.2
void *operator new(size_t, nothrow_t&) noexcept;
void *operator new[](size_t, nothrow_t&) noexcept;
void *operator delete(void*, nothrow_t&) noexcept;
void *operator delete[](void*, nothrow_t&) noexcept;
Π’ΠΈΠΏ nothrow_t ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΡΡΠΊΡΡΡΠΎΠΉ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ new. Π£ ΡΡΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΡΠ»Π΅Π½ΠΎΠ². ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ new ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ nothrow, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΠΊΠ°ΠΊ ΡΠΈΠ³Π½Π°Π», ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° Π²Π΅ΡΡΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° new, Π½Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΠ΅Π³ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ (ΡΠΌ. ΡΠ°Π·Π΄Π΅Π» 12.1.2). ΠΡΠ΄ΡΡΠΈ Π΄Π΅ΡΡΡΡΠΊΡΠΎΡΠΎΠΌ, ΡΡΠ½ΠΊΡΠΈΡ operator delete() Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ (ΡΠΌ. ΡΠ°Π·Π΄Π΅Π» 18.1.1). ΠΡΠΈ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠ΅ ΡΡΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, Π±ΡΠ΄ΡΡ Π»ΠΈ ΠΎΠ½ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ noexcept (ΡΠΌ. ΡΠ°Π·Π΄Π΅Π» 18.1.4).
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ²ΠΎΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ Π²Π΅ΡΡΠΈΡ Π»ΡΠ±ΠΎΠΉ ΠΈΠ· ΡΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΡΠ»ΠΈ ΡΡΠΎ ΡΠ°ΠΊ, ΡΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π² Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΡΡΠ½ΠΊΡΠΈΡ-ΡΠ»Π΅Π½ ΠΊΠ»Π°ΡΡΠ°. ΠΠΎΠ³Π΄Π° ΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΠΊΠ°ΠΊ ΡΠ»Π΅Π½Ρ ΠΊΠ»Π°ΡΡΠ°, ΠΎΠ½ΠΈ Π½Π΅ΡΠ²Π½ΠΎ ΡΠ²Π»ΡΡΡΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ (ΡΠΌ. ΡΠ°Π·Π΄Π΅Π» 7.6). ΠΠ΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΎΠ±ΡΡΠ²Π»ΡΡΡ ΠΈΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΡΠ²Π½ΠΎ, Ρ ΠΎΡΡ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π²ΠΏΠΎΠ»Π½Π΅ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎ. Π€ΡΠ½ΠΊΡΠΈΠΈ-ΡΠ»Π΅Π½Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² new ΠΈ delete Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° (operator new) ΠΈΠ»ΠΈ ΠΏΠΎΡΠ»Π΅ Π΅Π³ΠΎ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ (operator delete). ΠΠΎΡΡΠΎΠΌΡ Ρ Π½ΠΈΡ Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ -ΡΠ»Π΅Π½ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΎΠ½ΠΈ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ.
Π£ ΡΡΠ½ΠΊΡΠΈΠΉ operator new() ΠΈ operator new[]() Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠΈΠΏ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ void*, Π° ΠΈΡ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅ΡΡ ΡΠΈΠΏ size_t. Π£ ΡΡΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. Π€ΡΠ½ΠΊΡΠΈΡ operator new() ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°; ΡΡΠ½ΠΊΡΠΈΡ operator new[]() Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΏΡΠΈ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠ°ΡΡΠΈΠ²Π°. ΠΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ operator new(), ΠΎΠ½ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠΈΠΏΠ° size_t ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ Π±Π°ΠΉΡΠΎΠ², Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π΄Π»Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°; ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ operator new[]() ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π±Π°ΠΉΡΠΎΠ², Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π° Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ².