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

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

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

Π’ ΠΈΡ‚ΠΎΠ³Π΅, ΠΊΠ°ΠΊ ΠΌΠ½Π΅ извСстно, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° систСмной коррСктности ΠΎΡΡ‚Π°Π»Π°ΡΡŒ Π½ΠΈΠΊΠ΅ΠΌ Π½Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ. (Π”Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ Ρ‚Π°ΠΊΠΎΠ³ΠΎ исхода, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, послуТила ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ самих ΠΏΡ€Π°Π²ΠΈΠ» ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ.)

Классовая ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΡƒΡŽ классом, ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΠΏΡ€ΠΈ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°ΡŽΡ‰Π΅ΠΉ компиляции. БистСмная ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ всСй систСмы, Ρ‡Ρ‚ΠΎ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΠ΅ с Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°ΡŽΡ‰Π΅ΠΉ компиляциСй.

Однако, нСсмотря Π½Π° своС имя, фактичСски ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΡΠΈΡΡ‚Π΅ΠΌΠ½ΡƒΡŽ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°ΡŽΡ‰ΡƒΡŽ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ классов (Π² процСссС Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ компилятора). Π­Ρ‚ΠΎ ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Ρ„ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ Π²ΠΊΠ»Π°Π΄ΠΎΠΌ Π² Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.

ΠžΡΡ‚Π΅Ρ€Π΅Π³Π°ΠΉΡ‚Π΅ΡΡŒ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½Ρ‹Ρ… кэтколлов!

ΠŸΡ€Π°Π²ΠΈΠ»ΠΎ БистСмной ΠšΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΡΡ‚ΠΈ пСссимистично: Π² цСлях упрощСния ΠΎΠ½ΠΎ ΠΎΡ‚Π²Π΅Ρ€Π³Π°Π΅Ρ‚ ΠΈ Π²ΠΏΠΎΠ»Π½Π΅ бСзопасныС ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ инструкций. Как Π½ΠΈ ΠΏΠ°Ρ€Π°Π΄ΠΎΠΊΡΠ°Π»ΡŒΠ½ΠΎ, Π½ΠΎ послСдний Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΌΡ‹ построим Π½Π° основС Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ пСссимистичСского ΠΏΡ€Π°Π²ΠΈΠ»Π°. ЕстСствСнно, это ΠΏΠΎΠ΄Π½ΠΈΠΌΠ΅Ρ‚ вопрос ΠΎ Ρ‚ΠΎΠΌ, насколько рСалистичным Π±ΡƒΠ΄Π΅Ρ‚ наш Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

Назад, Π² Π―Π»Ρ‚Ρƒ

Π‘ΡƒΡ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠšΡΡ‚ΠΊΠΎΠ»Π» (Catcall), - смысл этого понятия ΠΌΡ‹ поясним ΠΏΠΎΠ·Π΄Π½Π΅Π΅, - Π² Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ Π΄ΡƒΡ…Ρƒ Ялтинских соглашСний, Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‰ΠΈΡ… ΠΌΠΈΡ€ Π½Π° ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½Ρ‹ΠΉ ΠΈ ΠΊΠΎΠ²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½Ρ‹ΠΉ (ΠΈ спутник ковариантности - скрытиС ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠ²), Π½ΠΎ Π±Π΅Π· нСобходимости обладания бСсконСчной ΠΌΡƒΠ΄Ρ€ΠΎΡΡ‚ΡŒΡŽ.

Как ΠΈ ΠΏΡ€Π΅ΠΆΠ΄Π΅, сузим вопрос ΠΎ ковариантности Π΄ΠΎ Π΄Π²ΡƒΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. Π’ нашСм Π³Π»Π°Π²Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ это ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½ΠΎΠ΅ присваиваниС: s := b, ΠΈ Π²Ρ‹Π·ΠΎΠ² ΠΊΠΎΠ²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹: s.share (g). Анализируя, ΠΊΡ‚ΠΎ ΠΆΠ΅ являСтся истинным Π²ΠΈΠ½ΠΎΠ²Π½ΠΈΠΊΠΎΠΌ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠΉ, ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΠΌ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ g ΠΈΠ· числа ΠΏΠΎΠ΄ΠΎΠ·Ρ€Π΅Π²Π°Π΅ΠΌΡ‹Ρ…. Π›ΡŽΠ±ΠΎΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ Ρ‚ΠΈΠΏ SKIER ΠΈΠ»ΠΈ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π΅Π½Π½Ρ‹ΠΉ ΠΎΡ‚ Π½Π΅Π³ΠΎ, Π½Π°ΠΌ Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ Π²Π²ΠΈΠ΄Ρƒ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΠ° s ΠΈ ковариантности share. А ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ссли статичСски ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ other ΠΊΠ°ΠΊ SKIER ΠΈ динамичСски ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ SKIER, Ρ‚ΠΎ Π²Ρ‹Π·ΠΎΠ² s.share (other) статичСски создаст Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»Π΅Π½ΠΈΠ΅ идСального Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°, Π½ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡŽ Ρ‚ΠΈΠΏΠΎΠ², Ссли ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½ΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ s Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ b.

Π€ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ пытаСмся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ s двумя нСсовмСстимыми способами: ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½ΡƒΡŽ ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ ΠΈ ΠΊΠ°ΠΊ Ρ†Π΅Π»ΡŒ Π²Ρ‹Π·ΠΎΠ²Π° ΠΊΠΎΠ²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. (Π’ Π΄Ρ€ΡƒΠ³ΠΎΠΌ нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° состоит Π² использовании p ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½ΠΎΠΉ сущности ΠΈ ΠΊΠ°ΠΊ Ρ†Π΅Π»ΠΈ Π²Ρ‹Π·ΠΎΠ²Π° ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎΡ‚ΠΎΠΌΠΊΠ°, ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ add_vertex.)

РСшСниС ΠšΡΡ‚ΠΊΠΎΠ»Π», ΠΊΠ°ΠΊ ΠΈ Π—Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½ΠΈΠ΅, носит Ρ€Π°Π΄ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€: ΠΎΠ½ΠΎ Π·Π°ΠΏΡ€Π΅Ρ‰Π°Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½ΡƒΡŽ ΠΈ ΠΊΠΎΠ²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΡƒΡŽ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. Подобно Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΠΎΠΌΡƒ Π°Π½Π°Π»ΠΈΠ·Ρƒ, ΠΎΠ½ΠΎ статичСски опрСдСляСт, ΠΊΠ°ΠΊΠΈΠ΅ сущности ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½Ρ‹ΠΌΠΈ, ΠΎΠ΄Π½Π°ΠΊΠΎ, Π½Π΅ пытаСтся Π±Ρ‹Ρ‚ΡŒ слишком ΡƒΠΌΠ½Ρ‹ΠΌ, отыскивая для сущностСй Π½Π°Π±ΠΎΡ€Ρ‹ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ². ВмСсто этого всякая полиморфная ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ воспринимаСтся ΠΊΠ°ΠΊ достаточно ΠΏΠΎΠ΄ΠΎΠ·Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ, ΠΈ Π΅ΠΉ запрСщаСтся Π²ΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ Π² союз с ΠΊΡ€ΡƒΠ³ΠΎΠΌ ΠΏΠΎΡ‡Ρ‚Π΅Π½Π½Ρ‹Ρ… Π»ΠΈΡ†, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΡ… ΠΊΠΎΠ²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ ΠΈ скрытиС ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠΌ.

Одно ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΈ нСсколько ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ

ΠŸΡ€Π°Π²ΠΈΠ»ΠΎ Ρ‚ΠΈΠΏΠΎΠ² для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠšΡΡ‚ΠΊΠΎΠ»Π» ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²ΠΊΡƒ:

ΠŸΡ€Π°Π²ΠΈΠ»ΠΎ Ρ‚ΠΈΠΏΠΎΠ² для ΠšΡΡ‚ΠΊΠΎΠ»Π»

ΠŸΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½Ρ‹Π΅ кэтколлы Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹.

Π’ Π΅Π³ΠΎ основС - ΡΡ‚ΠΎΠ»ΡŒ ΠΆΠ΅ простыС опрСдСлСния. ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго, полиморфная ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ:

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅: полиморфная ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ

Π‘ΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ x ссылочного (Π½Π΅ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΠΎΠ³ΠΎ) Ρ‚ΠΈΠΏΠ° ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½Π°, Ссли ΠΎΠ½Π° ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… свойств:

1 ВстрСчаСтся Π² присваивании x := y, Π³Π΄Π΅ ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ y ΠΈΠΌΠ΅Π΅Ρ‚ ΠΈΠ½ΠΎΠΉ Ρ‚ΠΈΠΏ ΠΈΠ»ΠΈ ΠΏΠΎ рСкурсии ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½Π°.

2 ВстрСчаСтся Π² инструкциях создания create {OTHER_TYPE} x, Π³Π΄Π΅ OTHER_TYPE Π½Π΅ являСтся Ρ‚ΠΈΠΏΠΎΠΌ, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ Π² объявлСнии x.

3 ЯвляСтся Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

4 ЯвляСтся внСшнСй Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ.

ЦСль этого опрСдСлСния - ΠΏΡ€ΠΈΠ΄Π°Ρ‚ΡŒ статус ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½ΠΎΠΉ ("ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½ΠΎΠΉ") любой сущности, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ². Π­Ρ‚ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ лишь ΠΊ ссылочным Ρ‚ΠΈΠΏΠ°ΠΌ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚Ρ‹Π΅ сущности ΠΏΠΎ ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π΅ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½Ρ‹ΠΌΠΈ.

Π’ Π½Π°ΡˆΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… Π»Ρ‹ΠΆΠ½ΠΈΠΊ s ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ p - ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½Ρ‹ ΠΏΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Ρƒ (1). ΠŸΠ΅Ρ€Π²ΠΎΠΌΡƒ ΠΈΠ· Π½ΠΈΡ… присваиваСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ BOY b, Π²Ρ‚ΠΎΡ€ΠΎΠΌΡƒ - ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ RECTANGLE r.

Если Π²Ρ‹ познакомились с Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ понятия Π½Π°Π±ΠΎΡ€Π° Ρ‚ΠΈΠΏΠΎΠ², Ρ‚ΠΎ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ, насколько пСссимистичнСС выглядит ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½ΠΎΠΉ сущности, ΠΈ насколько ΠΏΡ€ΠΎΡ‰Π΅ Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ. НС ΠΏΡ‹Ρ‚Π°ΡΡΡŒ ΠΎΡ‚Ρ‹ΡΠΊΠ°Ρ‚ΡŒ всС всСвозмоТныС динамичСскиС Ρ‚ΠΈΠΏΡ‹ сущности, ΠΌΡ‹ Π΄ΠΎΠ²ΠΎΠ»ΡŒΡΡ‚Π²ΡƒΠ΅ΠΌΡΡ ΠΎΠ±Ρ‰ΠΈΠΌ вопросом: ΠΌΠΎΠΆΠ΅Ρ‚ данная ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π½Π΅Ρ‚? НаиболСС ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ выглядит ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ (3), ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½Ρ‹ΠΌ считаСтся ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ (Ссли Π΅Π³ΠΎ Ρ‚ΠΈΠΏ Π½Π΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½, ΠΊΠ°ΠΊ Π² случаС с Ρ†Π΅Π»Ρ‹ΠΌΠΈ ΠΈ Ρ‚. Π΄.). ΠœΡ‹ Π΄Π°ΠΆΠ΅ Π½Π΅ ΡƒΡ‚Ρ€ΡƒΠΆΠ΄Π°Π΅ΠΌ сСбя Π°Π½Π°Π»ΠΈΠ·ΠΎΠΌ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ². Если Ρƒ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π΅ΡΡ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚, Ρ‚ΠΎ ΠΎΠ½ находится Π² ΠΏΠΎΠ»Π½ΠΎΠΌ распоряТСнии ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, Π° Π·Π½Π°Ρ‡ΠΈΡ‚, ΠΈ ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π½Π° ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π² объявлСнии Ρ‚ΠΈΠΏ нСльзя. Π­Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ тСсно связано с ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹ΠΌ использованиСм - Ρ†Π΅Π»ΡŒΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, - Π³Π΄Π΅ любой класс ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ Π² состав Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ.

Π₯Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹ΠΌ свойством этого ΠΏΡ€Π°Π²ΠΈΠ»Π° являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ. Для выявлСния полиморфности сущности достаточно ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ тСкст самого класса. Если для всСх запросов (Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ) ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± ΠΈΡ… статусС полиморфности, Ρ‚ΠΎ Π½Π΅ приходится ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ Π΄Π°ΠΆΠ΅ тСксты ΠΏΡ€Π΅Π΄ΠΊΠΎΠ². Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ отыскания Π½Π°Π±ΠΎΡ€ΠΎΠ² Ρ‚ΠΈΠΏΠΎΠ², ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½Ρ‹Π΅ сущности, провСряя класс Π·Π° классом Π² процСссС Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°ΡŽΡ‰Π΅ΠΉ компиляции.

Как Π±Ρ‹Π»ΠΎ сказано ΠΏΡ€ΠΈ обсуТдСнии наслСдования, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ Π°Π½Π°Π»ΠΈΠ· ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Ρ†Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π°.

Π’Ρ‹Π·ΠΎΠ²Ρ‹, ΠΊΠ°ΠΊ ΠΈ сущности, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½Ρ‹ΠΌΠΈ:

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅: ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ²

Π’Ρ‹Π·ΠΎΠ² являСтся ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½Ρ‹ΠΌ, Ссли Π΅Π³ΠΎ Ρ†Π΅Π»ΡŒ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½Π°.

Оба Π²Ρ‹Π·ΠΎΠ²Π° Π² Π½Π°ΡˆΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½Ρ‹: s.share (g) Π²Π²ΠΈΠ΄Ρƒ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΠ° s, p.add_ vertex (...) Π²Π²ΠΈΠ΄Ρƒ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΠ° p. Богласно ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ²Π°Π»ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π²Ρ‹Π·ΠΎΠ²Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½Ρ‹. (ΠŸΡ€ΠΈΠ΄Π°Π² Π½Π΅ΠΊΠ²Π°Π»ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌΡƒ Π²Ρ‹Π·ΠΎΠ²Ρƒ f (...) Π²ΠΈΠ΄ ΠΊΠ²Π°Π»ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Current.f (...), ΠΌΡ‹ Π½Π΅ мСняСм ΡΡƒΡ‚ΡŒ Π΄Π΅Π»Π°, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Current, ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π½ΠΈΡ‡Π΅Π³ΠΎ нСльзя, Π½Π΅ являСтся ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½Ρ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ.)

Π”Π°Π»Π΅Π΅ Π½Π°ΠΌ потрСбуСтся понятиС ΠšΡΡ‚ΠΊΠΎΠ»Π»Π°, основанноС Π½Π° понятии CAT. (CAT - это Π°Π±Π±Ρ€Π΅Π²ΠΈΠ°Ρ‚ΡƒΡ€Π° Changing Availability or Type - ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ доступности ΠΈΠ»ΠΈ Ρ‚ΠΈΠΏΠ°). ΠŸΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° являСтся CAT ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ, Ссли Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π΅Π΅ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠΌ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ измСнСниям ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π΄Π²ΡƒΡ… Π²ΠΈΠ΄ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, ΠΊΠ°ΠΊ ΠΌΡ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ, ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ опасными: измСняСт Ρ‚ΠΈΠΏ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° (ΠΊΠΎΠ²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΠΎ) ΠΈΠ»ΠΈ скрываСт Ρ€Π°Π½Π΅Π΅ ΡΠΊΡΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π²ΡˆΠΈΠΉΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚.

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅: CAT-ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

ΠŸΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° называСтся CAT-ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ, Ссли Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π΅Π΅ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ измСняСт статус экспорта ΠΈΠ»ΠΈ Ρ‚ΠΈΠΏ любого ΠΈΠ· Π΅Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ².

Π­Ρ‚ΠΎ свойство ΠΎΠΏΡΡ‚ΡŒ-Ρ‚Π°ΠΊΠΈ допускаСт Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°ΡŽΡ‰ΡƒΡŽ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ: любоС ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΈΠ»ΠΈ статуса экспорта Π΄Π΅Π»Π°ΡŽΡ‚ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ CAT-ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ. ΠžΡ‚ΡΡŽΠ΄Π° слСдуСт понятиС ΠšΡΡ‚ΠΊΠΎΠ»Π»Π°: Π²Ρ‹Π·ΠΎΠ²Π° CAT-ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½Ρ‹ΠΌ.

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅: ΠšΡΡ‚ΠΊΠΎΠ»Π»

Π’Ρ‹Π·ΠΎΠ² называСтся ΠšΡΡ‚ΠΊΠΎΠ»Π»ΠΎΠΌ, Ссли Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ сдСлало Π±Ρ‹ Π΅Π³ΠΎ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½Ρ‹ΠΌ ΠΈΠ·-Π·Π° измСнСния статуса экспорта ΠΈΠ»ΠΈ Ρ‚ΠΈΠΏΠ° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°.

Бозданная Π½Π°ΠΌΠΈ классификация позволяСт Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π³Ρ€ΡƒΠΏΠΏΡ‹ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ²: ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½Ρ‹Π΅ ΠΈ кэтколлы. ΠŸΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½Ρ‹Π΅ Π²Ρ‹Π·ΠΎΠ²Ρ‹ ΠΏΡ€ΠΈΠ΄Π°ΡŽΡ‚ Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΌΠΎΡ‰ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠΌΡƒ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρƒ, кэтколлы ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Ρ‚ΠΈΠΏΡ‹ ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ экспорт. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΡŽ, Π²Π²Π΅Π΄Π΅Π½Π½ΡƒΡŽ Ρ€Π°Π½Π΅Π΅ Π² этой Π»Π΅ΠΊΡ†ΠΈΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½Ρ‹Π΅ Π²Ρ‹Π·ΠΎΠ²Ρ‹ Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‚ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΡΡ‚ΡŒ (usefulness), кэтколлы - ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ(usability).

Π’Ρ‹Π·ΠΎΠ²Ρ‹ share ΠΈ add_vertex, рассмотрСнныС Π² Π½Π°ΡˆΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…, ΡΠ²Π»ΡΡŽΡ‚ΡΡ кэт-ΠΊΠΎΠ»Π»Π°ΠΌΠΈ. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ осущСствляСт ΠΊΠΎΠ²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΠΎΠ΅ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ своСго Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°. Π’Ρ‚ΠΎΡ€ΠΎΠΉ экспортируСтся классом RECTANGLE, Π½ΠΎ скрыт классом POLYGON. Оба Π²Ρ‹Π·ΠΎΠ²Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½Ρ‹, Π° ΠΏΠΎΡ‚ΠΎΠΌΡƒ ΠΎΠ½ΠΈ слуТат прСкрасным ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½Ρ‹Ρ… кэтколлов. Они ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½Ρ‹ΠΌΠΈ согласно ΠΏΡ€Π°Π²ΠΈΠ»Ρƒ Ρ‚ΠΈΠΏΠΎΠ² ΠšΡΡ‚ΠΊΠΎΠ»Π».

ΠžΡ†Π΅Π½ΠΊΠ°

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