Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠžΡΠ½ΠΎΠ²Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 80

Автор Π‘Π΅Ρ€Ρ‚Ρ€Π°Π½ ΠœΠ΅ΠΉΠ΅Ρ€

Π― ΠΏΡ€ΠΈΠ·Π½Π°Ρ‚Π΅Π»Π΅Π½ Ross Scaife ΠΈΠ· УнивСрситСта ΠšΠ΅Π½Ρ‚ΡƒΠΊΠΊΠΈ Π·Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ ΠΏΠΎ вопросам Ρ€ΠΈΡ‚ΠΎΡ€ΠΈΠΊΠΈ. Π‘ΠΌ. Π΅Π³ΠΎ страницу http://www.uky.edu/ArtsSciences/Classics/rhetoric.html.

УпраТнСния

Π£8.1 Книги ΠΈ Π°Π²Ρ‚ΠΎΡ€Ρ‹

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ классы BOOK and WRITER ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΈ ΠΈΡ… Π°Π²Ρ‚ΠΎΡ€ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π·Π°Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ ΠΈΠ· Π΄Π°Π½Π½ΠΎΠΉ Π»Π΅ΠΊΡ†ΠΈΠΈ. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ всСх Π²Π°ΠΆΠ½Ρ‹Ρ… ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ².

Π£8.2 Личности

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ класс PERSON Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΉ простоС понятиС личности с Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ mother, father ΠΈ sibling (ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΠΎ ΡΡ‚Π°Ρ€ΡˆΠΈΠ½ΡΡ‚Π²Ρƒ Π±Ρ€Π°Ρ‚ ΠΈΠ»ΠΈ сСстра, Ссли ΠΎΠ½ΠΈ Π΅ΡΡ‚ΡŒ). Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠ΅ списки ΠΈΠΌΠ΅Π½ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ, Π΄Π²ΠΎΡŽΡ€ΠΎΠ΄Π½Ρ‹Ρ… Π±Ρ€Π°Ρ‚ΡŒΠ΅Π² ΠΈ сСстСр, дядюшСк ΠΈ Ρ‚Π΅Ρ‚ΡƒΡˆΠ΅ΠΊ, свСкра ΠΈ свСкрови, тСстя ΠΈ Ρ‚Π΅Ρ‰ΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π»ΠΈΡ†Π°. Π‘ΠΎΠ²Π΅Ρ‚: ΠΏΠΈΡˆΠΈΡ‚Π΅ рСкурсивныС ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹, Π½ΠΎ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ·Π±Π΅Π³Π°ΠΉΡ‚Π΅ бСсконСчных рСкурсий для ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄Π²ΠΎΡŽΡ€ΠΎΠ΄Π½Ρ‹ΠΉ Π±Ρ€Π°Ρ‚ ΠΈΠ»ΠΈ сСстра, ΡΠ²Π»ΡΡŽΡ‰ΠΈΡ…ΡΡ цикличСскими.

Π£8.3 ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π²Ρ‹ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ сравнСниС Π² Ρ„ΠΎΡ€ΠΌΠ΅ x.is_equal (y), ΠΈ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ Π½ΠΎΡ‚Π°Ρ†ΠΈΡŽ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ прСимущСства инфиксной записи (ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎΠΉ здСсь, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ наша функция ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚). Для инфиксного ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Β§, Π²Ρ‹Π·ΠΎΠ² Ρ‚ΠΎΠ³Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒΡΡ Π² Π²ΠΈΠ΄Π΅ x Β§ y. Π­Ρ‚ΠΎ малСнькоС ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π²Ρ‹Π±ΠΎΡ€Π° для ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Β§, подходящСго для Π΄Π°Π½Π½ΠΎΠΉ ситуации символа, совмСстимого с ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ инфиксных ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ². ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, здСсь ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ², Π²Ρ‹Π±ΠΎΡ€ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… частично (Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ частично) Π΄Π΅Π»ΠΎ вкуса. (Π‘ΠΌ. "ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹-ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹", лСкция 7)

ЛСкция 9. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ

ЧСстно говоря, Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ Π·Π°Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎ ΠΏΠ°ΠΌΡΡ‚ΡŒ. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ создавали Π±Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ надобности. ΠΠ΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ исчСзали Π±Ρ‹ Π² Π½Π΅Π±Ρ‹Ρ‚ΠΈΠ΅, Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π²ΠΈΠ³Π°Π»ΠΈΡΡŒ Π±Ρ‹ Π²Π²Π΅Ρ€Ρ…. Π­Ρ‚ΠΎΡ‚ процСсс ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ двиТСнию ΠΏΠΎ слуТСбной лСстницС Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊΠ° большой ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ†ΠΈΠΈ, Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Ρ‹ Π΄ΠΎΡΡ‚ΠΈΠ³ΡˆΠ΅Π³ΠΎ уровня руководства. Но это Π½Π΅ Ρ‚Π°ΠΊ. ΠŸΠ°ΠΌΡΡ‚ΡŒ Π½Π΅ Π±Π΅Π·Π³Ρ€Π°Π½ΠΈΡ‡Π½Π° ΠΈ Π½Π΅ организуСтся Π² Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½Ρ‹ΠΉ ряд слоСв с ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°ΡŽΡ‰Π΅ΠΉΡΡ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ доступа. Нам Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠ²ΠΎΠ»ΡŒΠ½ΡΡ‚ΡŒ Π½Π°ΡˆΠΈΡ… бСстолковых Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊΠΎΠ² Π΄Π°ΠΆΠ΅, Ссли ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ это Ρ€Π°Π½Π½ΠΈΠΌ ΡƒΡ…ΠΎΠ΄ΠΎΠΌ Π½Π° пСнсию, ΠΏΡ€ΠΎΠ΄ΠΈΠΊΡ‚ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΎΠ±Ρ‰Π΅ΠΉ экономичСской ситуациСй. Π­Ρ‚Π° лСкция ΠΈΠ·ΡƒΡ‡Π°Π΅Ρ‚, ΠΊΡ‚ΠΎ всС ΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ сокращСн, ΠΊΠ΅ΠΌ ΠΈ ΠΊΠ°ΠΊ.

Π§Ρ‚ΠΎ происходит с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ

ОО-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° создаСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. ΠŸΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π°Ρ лСкция ΠΏΠΎΠΊΠ°Π·Π°Π»Π°, ΠΊΠ°ΠΊ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π½Π° динамичСскоС созданиС для получСния Π³ΠΈΠ±ΠΊΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Ρ… структур, ΠΏΠΎΠ΄ΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ…ΡΡ автоматичСски ΠΊ Π½ΡƒΠΆΠ΄Π°ΠΌ систСмы.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²

ΠœΡ‹ рассмотрСли Π±Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ размСщСния Π½ΠΎΠ²Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². ΠŸΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ способ размСщСния записываСтся ΠΊΠ°ΠΊ


create x


ΠΈ Π΅Π³ΠΎ эффСкт Π±Ρ‹Π» ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Ρ‚Ρ€ΠΈΠ°Π΄ΠΎΠΉ: ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚; ΡΠ²ΡΠ·Π°Ρ‚ΡŒ Π΅Π³ΠΎ со ссылкой x; ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ поля.

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ этой инструкции Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ; ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ clone ΠΈ deep_clone. Π’Π°ΠΊ ΠΊΠ°ΠΊ всС эти Ρ„ΠΎΡ€ΠΌΡ‹ размСщСния основаны Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ базисной инструкции создания, ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π· ΠΏΠΎΡ‚Π΅Ρ€ΠΈ общности ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒΡΡ рассмотрСниСм create x .

Рассмотрим эффСкт, создаваСмый инструкциями управлСния ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ.

Π’Ρ€ΠΈ Ρ€Π΅ΠΆΠΈΠΌΠ° управлСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ Ρ€Π°ΠΌΠΊΠΈ дискуссии. Π€ΠΎΡ€ΠΌΠ° управлСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ для ОО-вычислСний, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Ρ‚Ρ€Π΅Ρ… ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ встрСчаСмых Ρ€Π΅ΠΆΠΈΠΌΠΎΠ²: статичСским, стСковым ΠΈ динамичСски распрСдСляСмым. Π’Ρ‹Π±ΠΎΡ€ Ρ€Π΅ΠΆΠΈΠΌΠ° опрСдСляСт, ΠΊΠ°ΠΊ сущности ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡ ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ.

Напомним, Ρ‡Ρ‚ΠΎ ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ - это имя Π² тСкстС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅Π΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ выполнСния. Π’Π°ΠΊΠΈΠ΅ значСния ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π»ΠΈΠ±ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, Π»ΠΈΠ±ΠΎ (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ) ссылками Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. Бущностями ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹, Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ Result. Π’Π΅Ρ€ΠΌΠΈΠ½ присоСдинСниС описываСт связь ΠΌΠ΅ΠΆΠ΄Ρƒ ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ: Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ этапС выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ x присоСдиняСтся ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ О, Ссли Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ x Π΅ΡΡ‚ΡŒ Π»ΠΈΠ±ΠΎ О (для x Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°), Π»ΠΈΠ±ΠΎ ссылка Π½Π° О (для x ссылочного Ρ‚ΠΈΠΏΠ°). Если x присоСдинСн ΠΊ О, часто говорят Ρ‚Π°ΠΊΠΆΠ΅, Ρ‡Ρ‚ΠΎ О присоСдинСн ΠΊ x. Бсылка ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ присоСдинСна Π½Π΅ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ присоСдинСн ΠΊ Π΄Π²ΡƒΠΌ ΠΈ Π±ΠΎΠ»Π΅Π΅ ссылкам. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° динамичСских псСвдонимов ΠΎΠ±ΡΡƒΠΆΠ΄Π°Π»Π°ΡΡŒ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ Π»Π΅ΠΊΡ†ΠΈΠΈ.

Π’ статичСском Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ присоСдинСна максимум ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ Π² процСссС выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π­Ρ‚Π° схСма, поддСрТиваСмая Π² Ρ‚Π°ΠΊΠΈΡ… языках ΠΊΠ°ΠΊ Fortran, Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΡƒΠ΅Ρ‚ мСсто для всСх ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ присоСдиняСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΊ ΠΈΠΌΠ΅Π½ΠΈ Ρ€Π°Π· ΠΈ навсСгда ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ»ΠΈ Π² Π½Π°Ρ‡Π°Π»Π΅ Π΅Π΅ выполнСния.

Рис. 9.1.  Π‘татичСский Ρ€Π΅ΠΆΠΈΠΌ

БтатичСский Ρ€Π΅ΠΆΠΈΠΌ прост ΠΈ эффСктивно Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°. Но ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Π΅ ограничСния:

[x]. ΠŸΡ€Π΅ΠΏΡΡ‚ΡΡ‚Π²ΡƒΠ΅Ρ‚ рСкурсии. РСкурсивной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ нСсколько ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΊΠΎΠΏΠΈΠΉ, ΠΊΠ°ΠΆΠ΄ΠΎΠΉ со своими экзСмплярами сущностСй.

[x]. ΠŸΡ€Π΅ΠΏΡΡ‚ΡΡ‚Π²ΡƒΠ΅Ρ‚ созданию динамичСских структур Π΄Π°Π½Π½Ρ‹Ρ…. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Ρ‚ΠΎΡ‡Π½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ структуры Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· тСкста ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ массив, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π² этом случаС ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒΡΡ статично со своим строгим Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ. Π­Ρ‚ΠΎ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΡŒ языка: становится Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ структурами, растущими Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° события выполнСния. ΠŸΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ΡΡ Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ максимально Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· структур - это Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ нСэффСктивно, Π½ΠΎ ΠΈ довольно опасно. Если Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· структур Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅Π΄ΠΎΠΎΡ†Π΅Π½Π΅Π½, это, скорСС всСго, Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ выполнСния систСмы.

Π’Ρ‚ΠΎΡ€ΠΎΠΉ Ρ€Π΅ΠΆΠΈΠΌ размСщСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² - Ρ€Π΅ΠΆΠΈΠΌ стСка. Π—Π΄Π΅ΡΡŒ ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒΡΡ ΠΊ нСскольким ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ. ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ выполнСния Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ ΠΈ удаляСт эти ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² порядкС "послСдним ΠΏΡ€ΠΈΡˆΠ΅Π», ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΡƒΡˆΠ΅Π»". Когда ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ удаляСтся, относящаяся ΠΊ Π½Π΅ΠΌΡƒ ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ присоСдиняСтся вновь ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΎΠ½Π° Π±Ρ‹Π»Π° связана Π΄ΠΎ появлСния Π½ΠΎΠ²ΠΎΠ³ΠΎ элСмСнта, Ссли, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Ρ‚Π°ΠΊΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ сущСствуСт.

Рис. 9.2.  Π Π΅ΠΆΠΈΠΌ, основанный Π½Π° стСкС

ОснованноС Π½Π° стСкС ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ сдСлало популярным Algol 60 ΠΈ с Ρ‚Π΅Ρ… ΠΏΠΎΡ€ поддСрТиваСтся (часто вмСстС с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ двумя Ρ€Π΅ΠΆΠΈΠΌΠ°ΠΌΠΈ) Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ языков. Π’Π°ΠΊΠΎΠΉ способ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π΅ΠΊΡƒΡ€ΡΠΈΡŽ ΠΈ динамичСскиС массивы, Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Ρ‹ΡΡΠ½ΡΡŽΡ‚ΡΡ Π² процСссС выполнСния. Π’ Pascal ΠΈ C этот ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π½Π΅ примСняСтся ΠΊ массивам, ΠΊΠ°ΠΊ это дСлаСтся Π² Algol. Однако Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π±Ρ‹ Ρ‡Π°Ρ‰Π΅ всСго ΠΈΠΌΠ΅Π½Π½ΠΎ массивы Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠΌ способом. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π΄Π°ΠΆΠ΅ Ссли этот ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ ΠΊ массивам, Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Π² стСкС Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° слоТных структур Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.9.1)

Для слоТных структур Π΄Π°Π½Π½Ρ‹Ρ… Π½Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ ΠΈ послСдний Ρ€Π΅ΠΆΠΈΠΌ: динамичСская ΠΏΠ°ΠΌΡΡ‚ΡŒ, называСмая Ρ‚Π°ΠΊΠΆΠ΅ "ΠΊΡƒΡ‡Π΅ΠΉ", ΠΈΠ·-Π·Π° способа Π΅Π΅ использования. Π­Ρ‚ΠΎ ΠΏΠ°ΠΌΡΡ‚ΡŒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ динамичСски ΠΏΠΎ запросу. Бущности ΠΌΠΎΠ³ΡƒΡ‚ динамичСски ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒΡΡ ΠΊ Ρ€Π°Π·Π½Ρ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ. Π’ΠΎ врСмя компиляции ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ нСльзя ΠΏΡ€Π΅Π΄ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ созданы ΠΈ присоСдинСны ΠΊ сущности. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ссылки Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹.

Рис. 9.3.  Π”инамичСский Ρ€Π΅ΠΆΠΈΠΌ

ДинамичСская ΠΏΠ°ΠΌΡΡ‚ΡŒ позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ слоТныС динамичСскиС структуры Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΊΠΎΠ³Π΄Π°, ΠΊΠ°ΠΊ ΠΎΠ±ΡΡƒΠΆΠ΄Π°Π»ΠΎΡΡŒ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ Π»Π΅ΠΊΡ†ΠΈΠΈ, ПО трСбуСтся вся ΠΌΠΎΡ‰ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² модСлирования.

ИспользованиС динамичСского Ρ€Π΅ΠΆΠΈΠΌΠ°

ДинамичСский Ρ€Π΅ΠΆΠΈΠΌ, ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΎΠ±Ρ‰ΠΈΠΉ, ΠΈ ΠΎΠ½ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ для ОО-программирования. Π•Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π½Π΅ ОО-языки. Π’ частности:

[x]. Pascal ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ статичСский Ρ€Π΅ΠΆΠΈΠΌ для массивов, Ρ€Π΅ΠΆΠΈΠΌ, основанный Π½Π° стСкС, для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Π½Π΅ ΡΠ²Π»ΡΡŽΡ‰ΠΈΡ…ΡΡ массивами ΠΈ указатСлями, динамичСский Ρ€Π΅ΠΆΠΈΠΌ для ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ. Π’ послСднСм случаС созданиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° выполняСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Ρ‹Π·ΠΎΠ²Π° ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ создания new.

[x]. Π―Π·Ρ‹ΠΊ C ΠΏΠΎΡ…ΠΎΠΆ Π½Π° Pascal, Π½ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Π²ΠΎΠ΄ΠΈΡ‚ динамичСскиС массивы ΠΈ статичСскиС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, Π½Π΅ ΡΠ²Π»ΡΡŽΡ‰ΠΈΠ΅ΡΡ массивами, Π―Π·Ρ‹ΠΊ Π‘ динамичСски Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΠ° ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΠΈ массивы, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ malloc.

[x]. PL/I ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ всС ΠΌΠΎΠ΄Π΅Π»ΠΈ.