Π‘Π°ΠΊΠ°Π»Π°Π²Ρ€
Π”ΠΈΠΏΠ»ΠΎΠΌΠ½Ρ‹Π΅ ΠΈ курсовыС Π½Π° Π·Π°ΠΊΠ°Π·

Π―Π·Ρ‹ΠΊ программирования C++

Π Π΅Ρ„Π΅Ρ€Π°Ρ‚ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ понятиСм Π‘++ являСтся класс. Класс — это опрСдСляСмый ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Ρ‚ΠΈΠΏ. ΠšΠ»Π°ΡΡΡ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ упрятываниС Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΡ… ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ, нСявноС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ², динамичСскоС Π·Π°Π΄Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ², ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ ΠΈ ΡΡ€Π΅Π΄ΡΡ‚Π²Π° для ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. Π’ ΡΠ·Ρ‹ΠΊΠ΅ Π‘++ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ контроля Ρ‚ΠΈΠΏΠΎΠ² ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ³ΠΎ построСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΠΎ, Ρ‡Π΅ΠΌ Π²… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π―Π·Ρ‹ΠΊ программирования C++ (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Zabot 2003;2004 ВсС ΠΏΡ€Π°Π²Π° Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Ρ‹

ЀБПО ΠœΠ“ΠΠŸΠ˜

Π Π΅Ρ„Π΅Ρ€Π°Ρ‚ ΠΏΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ тСхнологиям

«C++»

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»: студСнт Π³Ρ€ΡƒΠΏΠΏΡ‹ Π’Πœ

Zabot

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ»: ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°Ρ‚Π΅Π»ΡŒ

ΠšΠΎΡ€ΠΎΠ»Ρ‘Π² Н. А.

Москва 2003

ΠŸΠΎΡ‡Π΅ΠΌΡƒ C++ … 1

Π’ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ ΠΈ ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΡ языка C++ … 1

ЗамСчания ΠΏΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ языка … 3

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ языков Π‘++ ΠΈ Π‘ … 4

Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΈ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° … 6

ΠšΠ ΠΠ’ΠšΠ˜Π™ ΠžΠ‘Π—ΠžΠ  Π‘++ … 8

ΠŸΠΠ ΠΠ”Π˜Π“ΠœΠ« ΠŸΠ ΠžΠ“Π ΠΠœΠœΠ˜Π ΠžΠ’ΠΠΠ˜Π―: … 9

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ … 9

ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ … 9

Абстракция Π΄Π°Π½Π½Ρ‹Ρ… … 10

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ … 11

Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π½Ρ‹ΠΉ Π‘ (ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½ΠΎΠ³ΠΎ ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ³ΠΎ программирования) … 13

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° абстракции Π΄Π°Π½Π½Ρ‹Ρ… … 14

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования 14

ΠŸΡ€Π΅Π΄Π΅Π»Ρ‹ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²Π° … 15

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

… 16

ΠŸΠΎΡ‡Π΅ΠΌΡƒ C++

Π‘++ Π² Π½Π°ΡΡ‚оящСС врСмя считаСтся Π³ΠΎΡΠΏΠΎΠ΄ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ языком, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ для Ρ€Π°Π·Ρ€Π°-Π±ΠΎΡ‚ΠΊΠΈ коммСрчСских ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ². Π’ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π³ΠΎΠ΄Ρ‹ это господство слСгка ΠΏΠΎ-колСбалось вслСдствиС Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€Π΅Ρ‚Π΅Π½Π·ΠΈΠΉ со ΡΡ‚ΠΎΡ€ΠΎΠ½Ρ‹ Ρ‚Π°ΠΊΠΎΠ³ΠΎ языка ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°-ния, ΠΊΠ°ΠΊ Java, Π½ΠΎ ΠΌΠ°ΡΡ‚Π½ΠΈΠΊ общСствСнного мнСния качнулся Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ сторону, ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ программисты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ бросили Π‘++ Ρ€Π°Π΄ΠΈ JΠ°vΠ°, Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ врСмя поспСшили Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ ΡΠ²ΠΎΠ΅ΠΉ ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΉ привязанности. Π’ Π»ΡŽΠ±ΠΎΠΌ случаС эти Π΄Π²Π° языка Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΡ…ΠΎΠΆΠΈ, Ρ‡Ρ‚ΠΎ, ΠΈΠ·ΡƒΡ‡ΠΈΠ² ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ…, Π²Ρ‹ Π°Π²Ρ‚оматичСски осваиваСтС 90% Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ.

Π‘# — это Π½ΠΎΠ²Ρ‹ΠΉ язык, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ МiсгоsΠΎft для сСтСвой ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. По ΡΡƒΡ‰Π΅-ству Π‘# являСтся Ρ€Π°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒΡŽ Π‘++, ΠΈ Π½Π΅ΡΠΌΠΎΡ‚ря Π½Π° Ρ€ΡΠ΄ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ, языки Π‘# ΠΈ Π‘++ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π½Π° 90%. ВСроятно, ΠΏΡ€ΠΎΠΉΠ΄Π΅Ρ‚ Π½Π΅ΠΌΠ°Π»ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ язык Π‘# составит ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΡƒΡŽ ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ†ΠΈΡŽ языку Π‘++; Π½ΠΎ Π΄Π°ΠΆΠ΅ Ссли это ΠΈ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, Ρ‚ΠΎ Π·Π½Π°Π½ΠΈΠ΅ языка Π‘++ окаТСтся сущСствСнным прСимущСством.

Π‘++ являСтся языком программирования ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния. ЕстСствСнная для Π½Π΅Π³ΠΎ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ примСнСния — систСмноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌΠΎΠ΅ Π² ΡˆΠΈΡ€ΠΎΠΊΠΎΠΌ смыслС этого слова. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π‘++ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… областях прилоТСния, Π΄Π°Π»Π΅ΠΊΠΎ выходящих Π·Π° ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Ρ€Π°ΠΌΠΊΠΈ. Π Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π‘++ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π΅ΡΡ‚ΡŒ Π½Π° Π²ΡΠ΅Ρ… ΠΌΠ°ΡˆΠΈΠ½Π°Ρ…, начиная с ΡΠ°ΠΌΡ‹Ρ… скромных ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ² — Π΄ΠΎ ΡΠ°ΠΌΡ‹Ρ… Π±ΠΎΠ»ΡŒΡˆΠΈΡ… супСр-Π­Π’Πœ, ΠΈ ΠΏΡ€Π°ΠΊΡ‚ичСски для всСх ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм.

Π’ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ ΠΈ ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΡ языка C++

Π‘ΡŒΠ΅Ρ€Π½ Бтрауструп являСтся Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ языка Π‘++ ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚Π΅Π»Π΅ΠΌ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ транслятора. Он — сотрудник Π½Π°ΡƒΡ‡Π½ΠΎ-ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ†Π΅Π½Ρ‚Ρ€Π° AT&T Bell Laboratories Π² ΠœΡŽΡ€Ρ€Π΅ΠΉ Π₯ΠΈΠ»Π» (Нью-ДТСрси, БША). Он ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» Π·Π²Π°Π½ΠΈΠ΅ магистра ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΈ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ Π² ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠΈΡ‚Π΅Ρ‚Π΅ Π³. ΠΠ°Ρ€ΡƒΡ (Дания), Π° Π΄ΠΎΠΊΡ‚орскоС Π·Π²Π°Π½ΠΈΠ΅ ΠΏΠΎ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ΅ Π² ΠΊΡΠΌΠ±Ρ€ΠΈΠ΄ΠΆΡΠΊΠΎΠΌ унивСрситСтС (Англия). Он ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ся Π² ΠΎΠ±Π»Π°ΡΡ‚ΠΈ распрСдСлСнных систСм, ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм, модСлирования ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ. ВмСстС с М. А. Эллис ΠΎΠ½ ΡΠ²Π»ΡΠ΅Ρ‚ся Π°Π²Ρ‚ΠΎΡ€ΠΎΠΌ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ руководства ΠΏΠΎ ΡΠ·Ρ‹ΠΊΡƒ Π‘++ - «Π ΡƒΠΊΠΎΠ²ΠΎΠ΄ΡΡ‚Π²ΠΎ ΠΏΠΎ Π‘++ с ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡΠΌΠΈ» .

БСзусловно Π‘++ ΠΌΠ½ΠΎΠ³ΠΈΠΌ обязан языку Π‘ [8], ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сохраняСтся ΠΊΠ°ΠΊ Π΅Π³ΠΎ подмноТСство. Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½Ρ‹ ΠΈ Π²ΡΠ΅ свойствСнныС Π‘ ΡΡ€Π΅Π΄ΡΡ‚Π²Π° Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ уровня, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ самых насущных Π·Π°Π΄Π°Ρ‡ систСмного программирования. Π‘, Π² ΡΠ²ΠΎΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΠΌΠ½ΠΎΠ³ΠΈΠΌ обязан своСму ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΈΠΊΡƒ языку BCPL. ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ языка BCPL Π±Ρ‹Π» восстановлСн Π² Π‘++. Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΈΠΌ источником вдохновСния Π±Ρ‹Π» язык SIMULA-67 [2,3]; ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΈΠ· Π½Π΅Π³ΠΎ Π±Ρ‹Π»Π° заимствована концСпция классов (вмСстС c ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΌΠΈ классами ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ функциями). Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π² Π‘++ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈ ΡΠ²ΠΎΠ±ΠΎΠ΄Π° размСщСния описаний Π²ΡΡŽΠ΄Ρƒ, Π³Π΄Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°Ρ‚ΡŒΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‚ язык Алгол-68.

Π‘ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½ΠΈΠ΅ вСрсии языка, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠΈΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ «Π‘ Ρ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ» [16], использовались, начиная с 1980 Π³. Π­Ρ‚ΠΎΡ‚ язык Π²ΠΎΠ·Π½ΠΈΠΊ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π°Π²Ρ‚ΠΎΡ€Ρƒ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ модСлирования, управляСмыС прСрываниями. Π―Π·Ρ‹ΠΊ SIMULA-67 идСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для этого, Ссли Π½Π΅ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ. Π―Π·Ρ‹ΠΊ «Π‘ Ρ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ» использовался для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π·Π°Π΄Π°Ρ‡ модСлирования. Π‘Ρ‚Ρ€ΠΎΠ³ΠΎΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ ΠΏΠΎΠ΄Π²Π΅Ρ€Π³Π»ΠΈΡΡŒ Ρ‚ΠΎΠ³Π΄Π° возмоТности написания Π½Π° Π½Π΅ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Ρ‹ рСсурсы Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ ΠΏΠ°ΠΌΡΡ‚ΠΈ. Π’ ΡΡ‚ΠΎΠΌ языкС нСдоставало ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, ссылок, Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… возмоТностСй. Π’ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π‘++ Π²Ρ‹ΡˆΠ΅Π» Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π» Π°Π²Ρ‚ΠΎΡ€, Π² ΠΈΡŽΠ»Π΅ 1983 Π³., ΠΎΠ΄Π½Π°ΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π° ΠΌΠ½ΠΎΠ³ΠΈΠ΅ возмоТности Π‘++ Π΅Ρ‰Π΅ Π½Π΅ Π±Ρ‹Π»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹.

НазваниС Π‘++ (си ΠΏΠ»ΡŽΡ плюс), Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π½ΠΎ Π ΠΈΠΊΠΎΠΌ ΠœΠ°ΡΠΊΠΈΡ‚Ρ‚ΠΈ Π»Π΅Ρ‚ΠΎΠΌ 1983 Π³. Π­Ρ‚ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΎΡ‚Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ языка Π‘. ΠžΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ++ относится ΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ наращивания Π‘. Π§ΡƒΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ΅ имя Π‘+ являСтся синтаксичСской ошибкой. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΎΠ½ΠΎ ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΎ использовано ΠΊΠ°ΠΊ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ совсСм Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ языка. Π—Π½Π°Ρ‚ΠΎΠΊΠΈ сСмантики Π‘ Π½Π°Ρ…одят, Ρ‡Ρ‚ΠΎ Π‘++ Ρ…ΡƒΠΆΠ΅, Ρ‡Π΅ΠΌ ++Π‘. Π―Π·Ρ‹ΠΊ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» названия D, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ ΡΠ²Π»ΡΠ΅Ρ‚ся Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ Π‘, ΠΈ Π² Π½Π΅ΠΌ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚ся ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π·Π° ΡΡ‡Π΅Ρ‚ ΠΎΡ‚ΠΊΠ°Π·Π° ΠΎΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Π΅ΠΉ Π‘. Π•Ρ‰Π΅ ΠΎΠ΄Π½Ρƒ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠ½ΡƒΡŽ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΡŽ названия Π‘++ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΊ.

Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π‘++ Π±Ρ‹Π» Π·Π°Π΄ΡƒΠΌΠ°Π½ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π°Π²Ρ‚ΠΎΡ€Ρƒ ΠΈ Π΅Π³ΠΎ Π΄Ρ€ΡƒΠ·ΡŒΡΠΌ Π½Π΅ Π½Π°Π΄ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ€Π΅, Π‘ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… соврСмСнных языках высокого уровня. ОсновноС Π΅Π³ΠΎ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ — ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ приятным процСсс программирования для ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ программиста. Π”ΠΎ Π½Π΅Π΄Π°Π²Π½Π΅Π³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π΅ Π±Ρ‹Π»ΠΎ ΠΏΠ»Π°Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π‘++ Π½Π° Π±ΡƒΠΌΠ°Π³Π΅. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, рСализация ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ шли ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ. Никогда Π½Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Π»ΠΎ «ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π‘++» ΠΈΠ»ΠΈ «ΠšΠΎΠΌΠΈΡ‚Π΅Ρ‚Π° ΠΏΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π‘++». ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ язык развивался ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒΡΡ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅ΠΎΠ΄ΠΎΠ»Π΅Ρ‚ΡŒ всС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ. Π’ΠΎΠ»Ρ‡ΠΊΠ°ΠΌΠΈ ΠΊ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΡŽ слуТат Ρ‚Π°ΠΊΠΆΠ΅ ΠΈ ΠΎΠ±ΡΡƒΠΆΠ΄Π΅Π½ΠΈΡ Π°Π²Ρ‚ΠΎΡ€ΠΎΠΌ всСх ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с Π΅Π³ΠΎ Π΄Ρ€ΡƒΠ·ΡŒΡΠΌΠΈ ΠΈ ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈ.

Π‘ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π²Ρ‹Ρ…ΠΎΠ΄Π° Π² ΡΠ²Π΅Ρ‚ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ издания этой ΠΊΠ½ΠΈΠ³ΠΈ язык Π‘++ подвСргся сущСствСнным измСнСниям ΠΈ ΡƒΡ‚очнСниям. Π’ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ это касаСтся Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ нСоднозначности ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠ΅, связывании ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ. ВмСстС с Ρ‚Π΅ΠΌ, Π±Ρ‹Π»ΠΈ внСсСны Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ измСнСния с Ρ†Π΅Π»ΡŒΡŽ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с ΡΠ·Ρ‹ΠΊΠΎΠΌ Π‘. Π‘Ρ‹Π»ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ Π²Π²Π΅Π΄Π΅Π½Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ обобщСния ΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²Π΅Π½Π½Ρ‹Π΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ, ΠΊΠ°ΠΊ Ρ‚ΠΎ: мноТСствСнноС наслСдованиС, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-Ρ‡Π»Π΅Π½Ρ‹ со ΡΠΏΠ΅Ρ†ΠΈΡ„икациями static ΠΈ const, Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹Π΅ Ρ‡Π»Π΅Π½Ρ‹ (protected), ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ Ρ‚ΠΈΠΏΠ° ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° особых ситуаций. ВсС эти Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΈ Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±Ρ‹Π»ΠΈ Π½Π°Ρ†Π΅Π»Π΅Π½Ρ‹ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π‘++ стал языком, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. ВсС измСнСния ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² [10,18,20,21 ΠΈ 23].

Π”Ρ€ΡƒΠ³ΠΈΠ΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ, Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π·Π° ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ ΠΌΠ΅ΠΆΠ΄Ρƒ 1985 ΠΈ 1991 Π³. Π³. (Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ мноТСствСнноС наслСдованиС, статичСскиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-Ρ‡Π»Π΅Π½Ρ‹ ΠΈ Ρ‡ΠΈΡΡ‚Ρ‹Π΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ), скорСС появились Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ обобщСния ΠΎΠΏΡ‹Ρ‚Π° программирования Π½Π° Π‘++, Ρ‡Π΅ΠΌ Π±Ρ‹Π»ΠΈ ΠΏΠΎΡ‡Π΅Ρ€ΠΏΠ½ΡƒΡ‚Ρ‹ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… языков.

Π‘Π΄Π΅Π»Π°Π½Π½Ρ‹Π΅ Π·Π° ΡΡ‚ΠΈ ΡˆΠ΅ΡΡ‚ΡŒ Π»Π΅Ρ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ языка ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго Π±Ρ‹Π»ΠΈ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Π½Π° ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π‘++ ΠΊΠ°ΠΊ языка абстракции Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΈ ΠΊΠ°ΠΊ срСдства для создания высококачСствСнных Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ‡Π°ΡΡ‚ности.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π² 1987 Π³. ΡΡ‚Π°Π»ΠΎ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Π‘++ Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½Π° ΠΈ Ρ‡Ρ‚ΠΎ слСдуСт Π½Π΅Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡŽ основы для Π½Π΅Π΅.

Π€ΠΈΡ€ΠΌΠ° AT&T Bell Laboratories внСсла основной Π²ΠΊΠ»Π°Π΄ Π² ΡΡ‚Ρƒ Ρ€Π°Π±ΠΎΡ‚Ρƒ. Около ста прСдставитСлСй ΠΈΠ· ΠΏΠΎΡ€ΡΠ΄ΠΊΠ° 20 ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΉ ΠΈΠ·ΡƒΡ‡Π°Π»ΠΈ ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ стало соврСмСнной вСрсиСй справочного руководства ΠΈ ΠΈΡΡ…ΠΎΠ΄Π½Ρ‹ΠΌΠΈ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°ΠΌΠΈ для ANSI ΠΏΠΎ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π‘++. НаконСц, ΠΏΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΈΠ²Π΅ Ρ„ΠΈΡ€ΠΌΡ‹ Hewlett-Packard Π² Π΄Π΅ΠΊΠ°Π±Ρ€Π΅ 1989 Π³. Π² составС ANSI Π±Ρ‹Π» ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ ΠΊΠΎΠΌΠΈΡ‚Π΅Ρ‚ X3J16. ΠžΠΆΠΈΠ΄Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Π‘++ Π² ANSI (амСриканский стандарт) станут составной Ρ‡Π°ΡΡ‚ΡŒΡŽ Ρ€Π°Π±ΠΎΡ‚ ΠΏΠΎ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ силами ISO (ΠœΠ΅ΠΆΠ΄ΡƒΠ½Π°Ρ€ΠΎΠ΄Π½ΠΎΠΉ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ).

Π‘++ развивался ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ с Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… классов.

ЗамСчания ΠΏΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ языка

ΠŸΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ языка Π‘++ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π²Π°ΠΆΠ½Π΅ΠΉΡˆΠΈΡ… ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠ΅Π² Π²Ρ‹Π±ΠΎΡ€Π° Π±Ρ‹Π»Π° простота. Когда Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π» вопрос, Ρ‡Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ: руководство ΠΏΠΎ ΡΠ·Ρ‹ΠΊΡƒ ΠΈ Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΈΠ»ΠΈ транслятор, — Ρ‚ΠΎ Π²Ρ‹Π±ΠΎΡ€ Π΄Π΅Π»Π°Π»ΠΈ Π² ΠΏΠΎΠ»ΡŒΠ·Ρƒ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ. ΠžΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ΄Π°Π²Π°Π»ΠΎΡΡŒ совмСстимости с ΡΠ·Ρ‹ΠΊΠΎΠΌ Π‘, Ρ‡Ρ‚ΠΎ помСшало ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π΅Π³ΠΎ синтаксис.

Π’ Π‘++ Π½Π΅Ρ‚ Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ€Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ высокого уровня. НапримСр, Π½Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΠ΅Ρ‚ Ρ‚ΠΈΠΏΠ° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° с ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ обращСния ΠΈΠ»ΠΈ Ρ‚ΠΈΠΏΠ° строка с ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ. Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ понадобятся ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΈΡ… Π² ΡΠ°ΠΌΠΎΠΌ языкС. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Π‘++ ΠΏΠΎ ΡΡƒΡ‚ΠΈ сводится ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ»ΠΈ зависящих ΠΎΡ‚ ΠΎΠ±Π»Π°ΡΡ‚ΠΈ прилоТСния Ρ‚ΠΈΠΏΠΎΠ². Π₯ΠΎΡ€ΠΎΡˆΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΌΠ°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ Ρ‚ΠΈΠΏ отличаСтся ΠΎΡ‚ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ способом опрСдСлСния, Π½ΠΎ Π½Π΅ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ примСнСния.

Из ΡΠ·Ρ‹ΠΊΠ° ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π»ΠΈΡΡŒ возмоТности, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ привСсти ΠΊ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹ΠΌ расходам памяти ΠΈΠ»ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния, Π΄Π°ΠΆΠ΅ Ссли ΠΎΠ½ΠΈ нСпосрСдствСнно Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ся Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. НапримСр, Π±Ρ‹Π»ΠΎ ΠΎΡ‚Π²Π΅Ρ€Π³Π½ΡƒΡ‚ΠΎ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΡΠ»ΡƒΠΆΠ΅Π±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ. Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ описал структуру, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ Π΄Π²Π΅ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹, Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠ΅ ΠΏΠΎ 16 разрядов, Ρ‚ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ируСтся, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° помСстится Π² 32-Ρ… разрядный рСгистр.

Π―Π·Ρ‹ΠΊ Π‘++ проСктировался для использования Π² Π΄ΠΎΠ²ΠΎΠ»ΡŒΠ½ΠΎ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠΉ срСдС, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ: Π² ΡΠΈΡΡ‚Π΅ΠΌΠ΅ программирования Π‘ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы UNIX. Но Π΅ΡΡ‚ΡŒ Π²ΠΏΠΎΠ»Π½Π΅ обоснованныС Π΄ΠΎΠ²ΠΎΠ΄Ρ‹ Π² ΠΏΠΎΠ»ΡŒΠ·Ρƒ использования Π‘++ Π² Π±ΠΎΠ»Π΅Π΅ Π±ΠΎΠ³Π°Ρ‚ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ срСдС. Π’Π°ΠΊΠΈΠ΅ возмоТности, ΠΊΠ°ΠΊ динамичСская Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ°, Ρ€Π°Π·Π²ΠΈΡ‚Ρ‹Π΅ систСмы трансляции ΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… для хранСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ Ρ‚ΠΈΠΏΠΎΠ², ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±Π΅Π· ΡƒΡ‰Π΅Ρ€Π±Π° для языка.

Π’ΠΈΠΏΡ‹ Π‘++ ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ упрятывания Π΄Π°Π½Π½Ρ‹Ρ… рассчитаны Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ синтаксичСский Π°Π½Π°Π»ΠΈΠ·, ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ транслятором для обнаруТСния случайной ΠΏΠΎΡ€Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Они Π½Π΅ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ сСкрСтности Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ ΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡ ΠΏΡ€Π°Π²ΠΈΠ» доступа ΠΊ Π½ΠΈΠΌ. Однако, эти срСдства ΠΌΠΎΠΆΠ½ΠΎ свободно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Π½Π΅ Π±ΠΎΡΡΡŒ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Ρ… расходов памяти ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π£Ρ‡Ρ‚Π΅Π½ΠΎ, Ρ‡Ρ‚ΠΎ конструкция языка Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ изящно записываСтся Π½Π° Π½Π΅ΠΌ, Π½ΠΎ ΠΈ Π²ΠΏΠΎΠ»Π½Π΅ ΠΏΠΎ ΡΡ€Π΅Π΄ΡΡ‚Π²Π°ΠΌ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌ.

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ языков Π‘++ ΠΈ Π‘

Π’Ρ‹Π±ΠΎΡ€ Π‘ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ языка для Π‘++ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ Π΅Π³ΠΎ достоинствами:

(1) ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΠΊΡ€Π°Ρ‚ΠΊΠΎΡΡ‚ΡŒ ΠΈ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΠΈΠ·ΠΊΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ;

(2) Π°Π΄Π΅ΠΊΠ²Π°Ρ‚Π½ΠΎΡΡ‚ΡŒ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Ρƒ Π·Π°Π΄Π°Ρ‡ систСмного программирования;

(3) ΠΎΠ½ ΠΈΠ΄Π΅Ρ‚ Π² Π»ΡŽΠ±ΠΎΠΉ систСмС ΠΈ Π½Π° Π»ΡŽΠ±ΠΎΠΉ машинС;

(4) ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ срСды UNIX.

Π’ Π‘ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ свои ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, Π½ΠΎ Π² ΡΠ·Ρ‹ΠΊΠ΅, Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΠΎΠΌ «Ρ Π½ΡƒΠ»Ρ» ΠΎΠ½ΠΈ появились Π±Ρ‹ Ρ‚ΠΎΠΆΠ΅, Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π‘, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, Ρ…ΠΎΡ€ΠΎΡˆΠΎ извСстны. Π‘ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ориСнтация Π½Π° Π‘ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ язык «Π‘ Ρ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ» ΠΊΠ°ΠΊ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ (хотя ΠΈ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ) инструмСнт Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²Ρ‹Ρ… мСсяцСв Ρ€Π°Π·Π΄ΡƒΠΌΠΈΠΉ ΠΎ Π²Π²Π΅Π΄Π΅Π½ΠΈΠΈ Π² Π‘ ΠΊΠ»Π°ΡΡΠΎΠ² Π² ΡΡ‚ΠΈΠ»Π΅ Π‘ΠΈΠΌΡƒΠ»Ρ‹.

Π‘++ стал ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡˆΠΈΡ€Π΅, Π½ΠΎ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ роста Π΅Π³ΠΎ возмоТностСй, выходящих Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ Π‘, вновь ΠΈ Π²Π½ΠΎΠ²ΡŒ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π»Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° совмСстимости. Ясно, Ρ‡Ρ‚ΠΎ ΠΎΡ‚ΠΊΠ°Π·Π°Π²ΡˆΠΈΡΡŒ ΠΎΡ‚ Ρ‡Π°ΡΡ‚ΠΈ наслСдства Π‘, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ (см., Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, [15]). Π­Ρ‚ΠΎ Π½Π΅ Π±Ρ‹Π»ΠΎ сдСлано ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ:

(1) ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ‹ строк ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° Π‘, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π‘++, Π½ΠΎ ΠΏΡ€ΠΈ условии, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»Π½ΠΎΠΉ пСрСписи ΠΈΡ… Π½Π° ΡΠ·Ρ‹ΠΊ Π‘++ Π½Π΅ ΠΏΠΎΡ‚рСбуСтся;

(2) ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ‹ строк Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΡΠ»ΡƒΠΆΠ΅Π±Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° Π‘, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Π‘++ ΠΏΡ€ΠΈ условиях совмСстимости ΠΎΠ±ΠΎΠΈΡ… языков Π½Π° ΡΡ‚Π°Π΄ΠΈΠΈ связывания ΠΈ ΠΈΡ… Π±ΠΎΠ»ΡŒΡˆΠΎΠ³ΠΎ синтаксичСского сходства;

(3) ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ сотни тысяч программистов, Π·Π½Π°ΡŽΡ‰ΠΈΡ… Π‘; ΠΈΠΌ Π΄ΠΎΡΡ‚Π°Ρ‚ΠΎΡ‡Π½ΠΎ ΠΎΠ²Π»Π°Π΄Π΅Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½ΠΎΠ²Ρ‹ΠΌΠΈ срСдствами Π‘++ ΠΈ Π½Π΅ Π½Π°Π΄ΠΎ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ основ языка;

(4) ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π‘ ΠΈ Π‘++ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΠ΄Π½ΠΈΠΌΠΈ ΠΈ Ρ‚Π΅ΠΌΠΈ ΠΆΠ΅ людьми Π½Π° ΠΎΠ΄Π½ΠΈΡ… ΠΈ Ρ‚Π΅Ρ… ΠΆΠ΅ систСмах ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π³ΠΎΠ΄Ρ‹, различия ΠΌΠ΅ΠΆΠ΄Ρƒ языками Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π»ΠΈΠ±ΠΎ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ, Π»ΠΈΠ±ΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ свСсти ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΡƒ количСство ошибок ΠΈ Π½Π΅Π΄ΠΎΡ€Π°Π·ΡƒΠΌΠ΅Π½ΠΈΠΉ. ОписаниС Π‘++ Π±Ρ‹Π»ΠΎ ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ любая допустимая Π² ΠΎΠ±ΠΎΠΈΡ… языках конструкция ΠΎΠ·Π½Π°Ρ‡Π°Π»Π° Π² Π½ΠΈΡ… ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅.

Как язык, Ρ‚Π°ΠΊ ΠΈ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π‘++ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π»ΠΈΡΡŒ Π² Ρ€Π°ΡΡ‡Π΅Ρ‚Π΅ Π½Π° ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΠΌΠΎΡΡ‚ΡŒ. Π˜ΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ΡΡ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ языка Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ систСм, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… Π‘. Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… Π½Π° Π‘++ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π‘. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ слуТСбных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, рассчитанных Π½Π° Π‘, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π² Π‘++.

Π―Π·Ρ‹ΠΊ Π‘ ΡΠ°ΠΌ развивался Π² ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ нСсколько Π»Π΅Ρ‚, Ρ‡Ρ‚ΠΎ отчасти Π±Ρ‹Π»ΠΎ связано с Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ Π‘++. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚ ANSI для Π‘ ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, синтаксис описания Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, позаимствованный ΠΈΠ· ΡΠ·Ρ‹ΠΊΠ° «Π‘ Ρ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ». ΠŸΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ Π²Π·Π°ΠΈΠΌΠ½ΠΎΠ΅ заимствованиС, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚ΠΈΠΏ указатСля void* Π±Ρ‹Π» ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π½ для ANSI Π‘, Π° Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π² Π‘++. Как Π±Ρ‹Π»ΠΎ ΠΎΠ±Π΅Ρ‰Π°Π½ΠΎ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΈΠ·Π΄Π°Π½ΠΈΠΈ этой ΠΊΠ½ΠΈΠ³ΠΈ, описаниС Π‘++ Π±Ρ‹Π»ΠΎ Π΄ΠΎΡ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π½Π΅ΠΎΠΏΡ€Π°Π²Π΄Π°Π½Π½Ρ‹Π΅ расхоТдСния. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π‘++ Π±ΠΎΠ»Π΅Π΅ совмСстим с ΡΠ·Ρ‹ΠΊΠΎΠΌ Π‘, Ρ‡Π΅ΠΌ это Π±Ρ‹Π»ΠΎ Π²Π½Π°Ρ‡Π°Π»Π΅ ($$R.18). Π’ ΠΈΠ΄Π΅Π°Π»Π΅ Π‘++ Π΄ΠΎΠ»ΠΆΠ΅Π½ максимально ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ°Ρ‚ΡŒΡΡ ΠΊ ANSI C, Π½ΠΎ Π½Π΅ Π±ΠΎΠ»Π΅Π΅. Π‘Ρ‚ΠΎΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π½ΠΎΠΉ совмСстимости Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±Ρ‹Π»ΠΎ ΠΈ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ это Π½Π°Ρ€ΡƒΡˆΠΈΡ‚ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ‚ΠΈΠΏΠΎΠ² ΠΈ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ использования встроСнных ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ², Π° ΡΡ‚ΠΈ свойства всСгда Π±Ρ‹Π»ΠΈ ΠΎΠ΄Π½ΠΈΠΌΠΈ ΠΈΠ· Π³Π»Π°Π²Π½Ρ‹Ρ… для Π‘++.

Для изучСния Π‘++ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ Π‘. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Π‘ ΡΠΏΠΎΡΠΎΠ±ΡΡ‚Π²ΡƒΠ΅Ρ‚ ΡƒΡΠ²ΠΎΠ΅Π½ΠΈΡŽ ΠΏΡ€ΠΈΠ΅ΠΌΠΎΠ² ΠΈ Π΄Π°ΠΆΠ΅ Ρ‚Ρ€ΡŽΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° Π‘++ становятся просто Π½Π΅Π½ΡƒΠΆΠ½Ρ‹ΠΌΠΈ. НапримСр, явноС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° (ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅), Π² Π‘++ Π½ΡƒΠΆΠ½ΠΎ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Ρ€Π΅ΠΆΠ΅, Ρ‡Π΅ΠΌ Π² Π‘ (см. «Π—амСчания для программистов Π½Π° Π‘» Π½ΠΈΠΆΠ΅). Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Ρ…ΠΎΡ€ΠΎΡˆΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Π‘ ΠΏΠΎ ΡΡƒΡ‚ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ Π½Π° Π‘++. НапримСр, всС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ· ΠΊΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠΎΠ³ΠΎ описания Π‘ ΡΠ²Π»ΡΡŽΡ‚ся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ Π½Π° Π‘++. Π’ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ изучСния Π‘++ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π΅Π½ ΠΎΠΏΡ‹Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π»ΡŽΠ±Ρ‹ΠΌ языком со ΡΡ‚атичСскими Ρ‚ΠΈΠΏΠ°ΠΌΠΈ.

Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ для программистов Π½Π° Π‘

Π§Π΅ΠΌ Π»ΡƒΡ‡ΡˆΠ΅ программист Π·Π½Π°Π΅Ρ‚ Π‘, Ρ‚Π΅ΠΌ Ρ‚Ρ€ΡƒΠ΄Π½Π΅Π΅ Π±ΡƒΠ΄Π΅Ρ‚ для Π½Π΅Π³ΠΎ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° Π‘++ ΠΎΡ‚ΠΎΠΉΡ‚ΠΈ ΠΎΡ‚ ΡΡ‚иля программирования Π½Π° Π‘. Π’Π°ΠΊ ΠΎΠ½ Ρ‚СряСт ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ прСимущСства Π‘++.

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

Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΈ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°

Π Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ языка Π‘++ происходило Π½Π° Π±Π°Π·Π΅ языка Π‘, ΠΈ, Π·Π° Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΠΌ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ, Π‘ Π±Ρ‹Π» сохранСн Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ подмноТСства C++. Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ язык Π‘ Π±Ρ‹Π» спроСктирован Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎ имССтся ΠΎΡ‡Π΅Π½ΡŒ тСсная связь ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ, опСрациями, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ нСпосрСдствСнно Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ машина, Ρ‚. Π΅. числами, символами ΠΈ Π°Π΄Ρ€Π΅ΡΠ°ΠΌΠΈ. Π—Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ new, delete ΠΈ throw, Π° Ρ‚Π°ΠΊΠΆΠ΅ провСряСмого Π±Π»ΠΎΠΊΠ°, для выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π‘++ Π½Π΅ Ρ‚рСбуСтся скрытой динамичСской Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ.

ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ язык Π‘ Π·Π°Π΄ΡƒΠΌΡ‹Π²Π°Π»ΡΡ ΠΊΠ°ΠΊ ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚ ассСмблСра, способный Π²Ρ‹Ρ‚Π΅ΡΠ½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½Ρ‹Ρ… ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊ Ρ€Π΅ΡΡƒΡ€ΡΠ°ΠΌ Π·Π°Π΄Π°Ρ‡ систСмного программирования. Π’ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Π‘++ Π±Ρ‹Π»ΠΈ приняты ΠΌΠ΅Ρ€Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ успСхи Π‘ Π² ΡΡ‚ΠΎΠΉ области Π½Π΅ ΠΎΠΊΠ°Π·Π°Π»ΠΈΡΡŒ ΠΏΠΎΠ΄ ΡƒΠ³Ρ€ΠΎΠ·ΠΎΠΉ. Π Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ двумя языками ΠΏΡ€Π΅ΠΆΠ΄Π΅ всС состоит Π² ΡΡ‚Π΅ΠΏΠ΅Π½ΠΈ внимания, удСляСмого Ρ‚ΠΈΠΏΠ°ΠΌ ΠΈ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°ΠΌ. Π―Π·Ρ‹ΠΊ Π‘ Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚Π΅Π»Π΅Π½ ΠΈ Π² Ρ‚ΠΎ ΠΆΠ΅ врСмя снисходитСлСн ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ Ρ‚ΠΈΠΏΠ°ΠΌ. Π―Π·Ρ‹ΠΊ Π‘++ Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚Π΅Π»Π΅Π½, Π½ΠΎ Ρ‚Π°ΠΊΠΎΠΉ Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ лишь Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Ρ‚ΠΈΠΏΠ°ΠΌ ΡƒΠ΄Π΅Π»ΡΡŽΡ‚ большоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅. Когда Ρ‚ΠΈΠΏΡ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² извСстны, транслятор ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ распознаСт Ρ‚Π°ΠΊΠΈΠ΅ выраТСния, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠ½Π°Ρ‡Π΅ программисту ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π±Ρ‹ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с ΡƒΡ‚ΠΎΠΌΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ подробностями. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π·Π½Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ² позволяСт транслятору ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ ошибки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Π±Ρ‹Π»ΠΈ Π±Ρ‹ выявлСны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ тСстировании. ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ само ΠΏΠΎ ΡΠ΅Π±Π΅ использованиС строгой Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠΈ языка для контроля ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΡ‚ Π½Π΅Π·Π°ΠΊΠΎΠ½Π½ΠΎΠ³ΠΎ доступа, опрСдСлСния Π½ΠΎΠ²Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π½Π΅ Π²Π»Π΅Ρ‡Π΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… расходов памяти ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΡ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π’ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Π‘++ особоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ удСляСтся ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π­Ρ‚ΠΎ Π²Ρ‹Π·Π²Π°Π½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ со Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ появлСния Π‘. ΠΠ΅Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ (скаТСм, Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 1000 строк) ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΈΠ· ΡƒΠΏΡ€ΡΠΌΡΡ‚Π²Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, Π½Π°Ρ€ΡƒΡˆΠ°Ρ всС ΠΏΡ€Π°Π²ΠΈΠ»Π° Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π³ΠΎ стиля программирования. Однако, дСйствуя Ρ‚Π°ΠΊ, Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ ΡƒΠΆΠ΅ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒΡΡ с Π±ΠΎΠ»ΡŒΡˆΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ. Если Ρƒ Π²Π°ΡˆΠ΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² 10 000 строк плохая структура, Ρ‚ΠΎ Π²Ρ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π½ΠΎΠ²Ρ‹Π΅ ошибки ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Π² Π½Π΅ΠΉ Ρ‚Π°ΠΊ ΠΆΠ΅ быстро, ΠΊΠ°ΠΊ ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ старыС. Π‘++ создавался с Ρ†Π΅Π»ΡŒΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ΄Π½ΠΎΠΌΡƒ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΡƒ Π½Π΅ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Ρ‚Скстом Π² 25 000 строк. Π’ Π½Π°ΡΡ‚оящСС врСмя ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ эта Ρ†Π΅Π»ΡŒ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ достигнута.

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π΅Ρ‰Π΅ большСго Ρ€Π°Π·ΠΌΠ΅Ρ€Π°. Однако Ρ‚Π΅ ΠΈΠ· Π½ΠΈΡ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΎ практичСски нСзависимых частСй, каТдая ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ мСньший упомянутого Ρ€Π°Π·ΠΌΠ΅Ρ€. ЕстСствСнно, Ρ‚Ρ€ΡƒΠ΄Π½ΠΎΡΡ‚ΡŒ написания ΠΈ ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ опрСдСляСтся Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ числом строк тСкста, Π½ΠΎ ΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ здСсь числа, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΎΠ±ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°Π»ΠΈΡΡŒ наши сообраТСния, Π½Π΅ Π½Π°Π΄ΠΎ Π²ΠΎΡΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ слишком ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎ.

К ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡŽ, Π½Π΅ Π²ΡΡΠΊΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠΆΠ½ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ нСзависимой ΠΎΡ‚ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚ΡƒΡ€Ρ‹, достаточно понятной ΠΈ Ρ‚. Π΄. Π’ Π‘++ Π΅ΡΡ‚ΡŒ срСдства, нСпосрСдствСнно ΠΈ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Π΅ возмоТности. Π˜Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ позволяСт ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΉΡΡ‚Π²Π° ΠΎ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΠΈ ΠΈ ΠΏΡ€ΠΎΡΡ‚ΠΎΡ‚Π΅ понимания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π’Π°ΠΊΠΈΠ΅ части ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ, прСдоставляя Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΉ ΠΈ ΠΏΡ€ΠΎΡΡ‚ΠΎΠΉ интСрфСйс с Π½ΠΈΠΌΠΈ.

ЕстСствСнно, Ссли Π‘++ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для большой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ‚ΠΎ ΡΡ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ язык ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π³Ρ€ΡƒΠΏΠΏΡ‹ программистов. ΠŸΠΎΠ»Π΅Π·Π½ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ здСсь ΡΡ‹Π³Ρ€Π°ΡŽΡ‚ свойствСнныС языку ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ ΠΈ ΡΡ‚Ρ€ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ интСрфСйсы. Π’ Π‘++ Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ Π½Π°Π±ΠΎΡ€ срСдств для создания Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΊΠ°ΠΊ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… языках. Но ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° становится Π΅Ρ‰Π΅ большС, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΏΠΎ Π΅Π΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡŽ ΠΈ ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ ΠΈΠ· ΠΎΠ±Π»Π°ΡΡ‚ΠΈ языка Π² Π±ΠΎΠ»Π΅Π΅ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… срСдств ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ.

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

ΠœΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ·Ρ€Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ запись ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠΉ систСмы Ρ‚ΠΈΠΏΠΎΠ², ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ тСкста. Для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Π‘++ это Π½Π΅ Ρ‚Π°ΠΊ: ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π° Π‘++, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ описаны Ρ‚ΠΈΠΏΡ‹ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ классы ΠΈ Ρ‚. ΠΏ., ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π±Ρ‹Π²Π°Π΅Ρ‚ Π΄Π°ΠΆΠ΅ ΠΊΠΎΡ€ΠΎΡ‡Π΅ своСго эквивалСнта Π½Π° Π‘, Π³Π΄Π΅ эти срСдства Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ся. Когда Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½Π° Π‘++ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΎΠ½Π° Ρ‚Π°ΠΊΠΆΠ΅ оказываСтся ΠΊΠΎΡ€ΠΎΡ‡Π΅ своСго эквивалСнта Π½Π° Π‘, Ссли, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΎΠ½ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΠ΅Ρ‚.

ΠšΠ ΠΠ’ΠšΠ˜Π™ ΠžΠ‘Π—ΠžΠ  Π‘++

Π―Π·Ρ‹ΠΊ программирования Π‘++ задумывался ΠΊΠ°ΠΊ язык, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚:

— Π»ΡƒΡ‡ΡˆΠ΅ языка Π‘;

— ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π°Π±ΡΡ‚Ρ€Π°ΠΊΡ†ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ…;

— ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅.

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

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ понятиСм Π‘++ являСтся класс. Класс — это опрСдСляСмый ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Ρ‚ΠΈΠΏ. ΠšΠ»Π°ΡΡΡ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ упрятываниС Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΡ… ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ, нСявноС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ², динамичСскоС Π·Π°Π΄Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ², ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ ΠΈ ΡΡ€Π΅Π΄ΡΡ‚Π²Π° для ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. Π’ ΡΠ·Ρ‹ΠΊΠ΅ Π‘++ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ контроля Ρ‚ΠΈΠΏΠΎΠ² ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ³ΠΎ построСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΠΎ, Ρ‡Π΅ΠΌ Π² Π‘. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π‘++ содСрТит ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΡ, прямо с ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ Π½Π΅ ΡΠ²ΡΠ·Π°Π½Π½Ρ‹Π΅: символичСскиС константы, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-подстановки, стандартныС значСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΈΠΌΠ΅Π½ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ управлСния свободной ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ ΠΈ ΡΡΡ‹Π»ΠΎΡ‡Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ. Π’ Π‘++ сохранСны всС возмоТности Π‘ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΎΡΠ½ΠΎΠ²Π½Ρ‹ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΠΌΠΈ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΡƒΡŽ «Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ» (разряды, Π±Π°ΠΉΡ‚Ρ‹, слова, адрСса ΠΈ Ρ‚. Π΄.). Π­Ρ‚ΠΎ позволяСт достаточно эффСктивно Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ — это ΠΌΠ΅Ρ‚ΠΎΠ΄ программирования, способ написания «Ρ…ΠΎΡ€ΠΎΡˆΠΈΡ…» ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ для мноТСства Π·Π°Π΄Π°Ρ‡. Если этот Ρ‚Π΅Ρ€ΠΌΠΈΠ½ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ смысл, Ρ‚ΠΎ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Ρ‚ΡŒ: Ρ‚Π°ΠΊΠΎΠΉ язык программирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдоставляСт Ρ…ΠΎΡ€ΠΎΡˆΠΈΠ΅ возмоТности для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ стиля программирования.

НСльзя ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ΄ΠΈΠ½ язык Π»ΡƒΡ‡ΡˆΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π² Π½Π΅ΠΌ Π΅ΡΡ‚ΡŒ возмоТности, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚. Часто Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠ°ΠΊ Ρ€Π°Π· Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚. Π—Π΄Π΅ΡΡŒ Π±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΠΎ Π½Π΅ Ρ‚ΠΎ, ΠΊΠ°ΠΊΠΈΠΌΠΈ возмоТностями ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ язык, Π° Ρ‚ΠΎ, насколько ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ΡΡ Π² Π½Π΅ΠΌ возмоТности ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΈΠ·Π±Ρ€Π°Π½Π½Ρ‹ΠΉ ΡΡ‚ΠΈΠ»ΡŒ программирования для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΡ€ΡƒΠ³Π° Π·Π°Π΄Π°Ρ‡.

Π―Π·Ρ‹ΠΊ Π‘++ проСктировался для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ абстракции Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования Π² Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠΌΡƒ ΡΡ‚ΠΈΠ»ΡŽ Π‘. Π’ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, это Π½Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ язык Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ стиля программирования ΠΎΡ‚ Π²ΡΠ΅Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.

ΠŸΠΠ ΠΠ”Π˜Π“ΠœΠ« ΠŸΠ ΠžΠ“Π ΠΠœΠœΠ˜Π ΠžΠ’ΠΠΠ˜Π―:

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ (ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ) ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠΎΠΉ программирования Π±Ρ‹Π»ΠΎ:

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Π²Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹; ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π»ΡƒΡ‡ΡˆΠΈΠ΅ ΠΈΠ· ΠΈΠ·Π²Π΅ΡΡ‚Π½Ρ‹Ρ… Π²Π°ΠΌ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ²!

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

Π›ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π°

ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‰Π°Ρ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π° рассуТдСниями ΠΎ ΡΠΏΠΎΡΠΎΠ±Π°Ρ… ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ², ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π²ΠΈΠ΄Π°Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ (ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹, ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΌΠ°ΠΊΡ€ΠΎΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, …) ΠΈ Ρ‚. Π΄. ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹ΠΌ языком Π±Ρ‹Π» Π€ΠΎΡ€Ρ‚Ρ€Π°Π½, Π° ΠΠ»Π³ΠΎΠ»60, Алгол68, Паскаль ΠΈ Π‘ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΠ»ΠΈ это Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅.

ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

Π‘ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΠΏΡ€ΠΈ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π°ΠΊΡ†Π΅Π½Ρ‚ смСстился с ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ Π½Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡŽ структур Π΄Π°Π½Π½Ρ‹Ρ…. Помимо всСго ΠΏΡ€ΠΎΡ‡Π΅Π³ΠΎ это Π²Ρ‹Π·Π²Π°Π½ΠΎ ΠΈ Ρ€ΠΎΡΡ‚ΠΎΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. ΠœΠΎΠ΄ΡƒΠ»Π΅ΠΌ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ связанных ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ ΠΈ Ρ‚Π΅Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΎΠ½ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚.

ΠŸΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ° программирования ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Π»Π° Π²ΠΈΠ΄:

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅, ΠΊΠ°ΠΊΠΈΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π½ΡƒΠΆΠ½Ρ‹; ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π°Π½Π½Ρ‹Π΅ Π±Ρ‹Π»ΠΈ скрыты Π² ΡΡ‚ΠΈΡ… модулях

Π­Ρ‚Π° ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ° извСстна Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ «ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ сокрытия Π΄Π°Π½Π½Ρ‹Ρ…». Если Π² ΡΠ·Ρ‹ΠΊΠ΅ Π½Π΅Ρ‚ возмоТности ΡΠ³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ связанныС ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ вмСстС с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Ρ‚ΠΎ ΠΎΠ½ ΠΏΠ»ΠΎΡ…ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹ΠΉ ΡΡ‚ΠΈΠ»ΡŒ программирования. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ написания «Ρ…ΠΎΡ€ΠΎΡˆΠΈΡ…» ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ примСняСтся для ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ модуля.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π΄Π°Π½Π½Ρ‹Π΅ Π΅ΡΡ‚ΡŒ СдинствСнная Π²Π΅Ρ‰ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ хотят ΡΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ, понятиС упрятывания Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½ΠΎ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ΡΡ Π΄ΠΎ ΠΏΠΎΠ½ΡΡ‚ия упрятывания ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Ρ‚. Π΅. ΠΈΠΌΠ΅Π½ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, констант, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ Ρ‚ΠΈΠΏΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚ΠΎΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅. Π₯отя Π‘++ ΠΈ Π½Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π°Π»ΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ³ΠΎ программирования, классы ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ ($$ 5.4.3 ΠΈ $$ 5.4.4). Помимо этого Π‘++, СстСствСнно, ΠΈΠΌΠ΅Π΅Ρ‚ ΡƒΠΆΠ΅ продСмонстрированныС возмоТности ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅ΡΡ‚ΡŒ Π² Π‘, Ρ‚. Π΅. прСдставлСниС модуля ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ трансляции.

Абстракция Π΄Π°Π½Π½Ρ‹Ρ…

ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΡƒ всСх Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π²ΠΎΠΊΡ€ΡƒΠ³ ΠΎΠ΄Π½ΠΎΠ³ΠΎ модуля, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ этим Ρ‚ΠΈΠΏΠΎΠΌ.

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π»ΡƒΡ‡ΡˆΠ΅, Ρ‡Π΅ΠΌ хаос, свойствСнный Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ, нСструктурированным Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌ, Π½ΠΎ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ Ρ‚Π°ΠΊΠΈΠΌ способом Ρ‚ΠΈΠΏΡ‹ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ «Π½Π°ΡΡ‚оящих», встроСнных. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ Ρ‚ΠΈΠΏΠΎΠΌ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ свой собствСнный Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ создания «ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…» этого Ρ‚ΠΈΠΏΠ°. НС ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΠ΅Ρ‚ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€Π°Π²ΠΈΠ» присваивания ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ², ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‰ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. Π£ «ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…» Ρ‚Π°ΠΊΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ² Π½Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΠ΅Ρ‚ ΠΈΠΌΠ΅Π½, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ Π±Ρ‹ извСстны транслятору ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ систСмным ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌ, ΠΈ ΡΡ‚ΠΈ «ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅» Π½Π΅ ΠΏΠΎΠ΄Ρ‡ΠΈΠ½ΡΡŽΡ‚ся ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ областСй видимости ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

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

Π˜Π½Ρ‹ΠΌΠΈ словами, концСпция ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰Π°Ρ ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΡƒ упрятывания Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π΅ Π·Π°ΠΏΡ€Π΅Ρ‰Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠΉ ΡΡ‚ΠΈΠ»ΡŒ программирования, Π½ΠΎ ΠΈ Π½Π΅ способствуСт Π΅ΠΌΡƒ.

Π’ ΡΠ·Ρ‹ΠΊΠ°Ρ… Ада, Clu, Π‘++ ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ΠΈΠΌ ΡΡ‚Π° Ρ‚Ρ€ΡƒΠ΄Π½ΠΎΡΡ‚ΡŒ прСодолСваСтся благодаря Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ свои Ρ‚ΠΈΠΏΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Ρ€Π°ΠΊΡ‚ΡƒΡŽΡ‚ΡΡ Π² ΡΠ·Ρ‹ΠΊΠ΅ практичСски Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ встроСнныС. Π’Π°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ абстрактными Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, хотя Π»ΡƒΡ‡ΡˆΠ΅, ΠΏΠΎΠΆΠ°Π»ΡƒΠΉ, ΠΈΡ… Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ просто ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌΠΈ. Π‘ΠΎΠ»Π΅Π΅ строгим ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ абстрактных Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΈΡ… ΠΌΠ°Ρ‚СматичСскоС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅. Если Π±Ρ‹ ΡƒΠ΄Π°Π»ΠΎΡΡŒ Π΅Π³ΠΎ Π΄Π°Ρ‚ΡŒ, Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ, Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ прСдставлСниСм Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ абстрактных сущностСй.

ΠŸΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΡƒ ΠΆΠ΅ программирования ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ‚Π°ΠΊ:

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅, ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ Π²Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹; ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°.

Если Π½Π΅Ρ‚ нСобходимости Π² Ρ€Π°Π·Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, Ρ‚ΠΎ ΡΡ‚ΠΈΠ»ΡŒ программирования, ΡΡƒΡ‚ΡŒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ сводится ΠΊ ΡƒΠΏΡ€ΡΡ‚Ρ‹Π²Π°Π½ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈ ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ обСспСчиваСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Π²ΠΏΠΎΠ»Π½Π΅ Π°Π΄Π΅ΠΊΠ²Π°Ρ‚Π΅Π½ этой ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ΅.

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ (хотя ΠΈ Π½Π΅ Π²ΡΠ΅) Π»ΡƒΡ‡ΡˆΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹.

ΠŸΡ€Π΅Π΄Π΅Π»Ρ‹ абстракции Π΄Π°Π½Π½Ρ‹Ρ…

Абстрактный Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… опрСдСляСтся ΠΊΠ°ΠΊ Π½Π΅ΠΊΠΈΠΉ «Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ ящик». ПослС своСго опрСдСлСния ΠΎΠ½ ΠΏΠΎ ΡΡƒΡ‚ΠΈ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΠ΅Ρ‚ с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ. Π•Π³ΠΎ Π½ΠΈΠΊΠ°ΠΊ нСльзя ΠΏΡ€ΠΈΡΠΏΠΎΡΠΎΠ±ΠΈΡ‚ΡŒ для Π½ΠΎΠ²Ρ‹Ρ… Ρ†Π΅Π»Π΅ΠΉ, Π½Π΅ ΠΌΠ΅Π½ΡΡ опрСдСлСния. Π’ ΡΡ‚ΠΎΠΌ смыслС это Π½Π΅Π³ΠΈΠ±ΠΊΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ прСдоставляСт Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ управлСния элСмСнтами любой слоТности, создавая условия для ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠ³ΠΎ использования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π΄Π°Π½Π½Ρ‹Ρ… с ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

Π‘ΡƒΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ «ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²», Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, скорСС, ΠΎΠ±Ρ€Π°Π·ΠΎΠ², Ρ‡Π΅ΠΌ Π΄Π°Π½Π½Ρ‹Ρ….

Руководящая идСя этого ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΡΡ‚Ρ€Π΅ΠΌΠ»Π΅Π½ΠΈΠΈ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ с ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌΠΈ эти Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ Π² Π΅Π΄ΠΈΠ½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ — ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ характСристики ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ.

ЀактичСски ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ уровня, ΠΊΠΎΠ³Π΄Π° вмСсто Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ случайного, мСханичСского объСдинСния ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π°ΠΊΡ†Π΅Π½Ρ‚ дСлаСтся Π½Π° ΠΈΡ… ΡΠΌΡ‹ΡΠ»ΠΎΠ²ΡƒΡŽ связь.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½Π°Ρ модСль способна ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊ элСмСнты управлСния графичСского интСрфСйса (Ρ‚ΠΈΠΏΠ° ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΈ Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ…ся списков), Ρ‚Π°ΠΊ ΠΈ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ (вСлосипСд, самолёт, ΠΊΠΎΡ‚Π° ΠΈ Π²ΠΎΠ΄Ρƒ). Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π·Π°Π΄Π°Ρ‡Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ эти ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ программирования.

Π’ ΡΠ·Ρ‹ΠΊΠ΅ C++ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Ρ‚Ρ€ΠΈ ΠΊΠΈΡ‚Π°, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ½ΠΎ состоит: ΠΈΠ½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡŽ, наслСдованиС ΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ.

Π˜Π½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡ

Π‘ΠΎΠ²ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ структур Π΄Π°Π½Π½Ρ‹Ρ… с Ρ„ункциями (ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ), ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΌΠΈ для манипулирования этими Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. Π˜Π½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡ достигаСтся ΠΏΡƒΡ‚Ρ‘ΠΌ ввСдСния класса Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° структурирования ΠΈ Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

НаслСдованиС

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ…, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Ρ… классов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ€Π°Π½Π΅Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… Π±Π°Π·ΠΎΠ²Ρ‹Ρ… классов. ΠŸΡ€ΠΈ этом Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ создаётся иСрархия классов.

ΠŸΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ

ΠŸΡ€ΠΈΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΈΠ»ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ классов Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ любой класс Π² ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ ΠΈΠΌΠ΅Π» Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎ-своСму Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ связанныС с ΡΡ‚ΠΈΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ дСйствия.

ΠžΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ с ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈ Π΄Π΅Ρ‚Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ появились ΠΈ ΠΎΡΠ½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π½Π° Π½Π΅ΠΉ языки программирования. Одним ΠΈΠ· ΠΏΠ΅Ρ€Π²Ρ‹Ρ… явился алгоритмичСский язык Modula 2. Π―Π·Ρ‹ΠΊ программирования Turbo Pascal, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ Ρ„ΠΈΡ€ΠΌΠΎΠΉ Borland, начиная с Π²Π΅Ρ€ΡΠΈΠΈ 5.5 стал ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ. Но Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²ΠΎΠΏΠ»ΠΎΡ‰Π΅Π½ΠΈΠ΅ концСпция ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования нашла Π² Π°Π»Π³ΠΎΡ€ΠΈΡ‚мичСском языкС C++.

ΠŸΡƒΡΡ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½ΡƒΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ для графичСской систСмы Ρ‚ΠΈΠΏ shape (Ρ„ΠΈΠ³ΡƒΡ€Π°). ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π°Π΅ΠΌ ΠΎΠ±Ρ‰ΠΈΠ΅ свойства Ρ„ΠΈΠ³ΡƒΡ€ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ„ΠΈΠ³ΡƒΡ€Π° ΠΈΠΌΠ΅Π΅Ρ‚ Ρ†Π²Π΅Ρ‚, Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Ρ‚. Π΄.) ΠΈ ΡΠ²ΠΎΠΉΡΡ‚Π²Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠΊΡ€ΡƒΠΆΠ½ΠΎΡΡ‚ΡŒ — это такая Ρ„ΠΈΠ³ΡƒΡ€Π°, которая ΠΈΠΌΠ΅Π΅Ρ‚ радиус, ΠΎΠ½Π° изобраТаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ€ΠΈΡΡƒΡŽΡ‰Π΅ΠΉ Π΄ΡƒΠ³ΠΈ ΠΈ Ρ‚. Π΄.).

Π‘ΡƒΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ позволяСт Π²Ρ‹Ρ€Π°ΠΆΠ°Ρ‚ΡŒ эти различия ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΈΡ…. Π―Π·Ρ‹ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ конструкции для выраТСния ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. ВсС Π΄Ρ€ΡƒΠ³ΠΈΠ΅ языки Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Π΅Π³ΠΎ. Π—Π΄Π΅ΡΡŒ ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ ΠΈΠ³Ρ€Π°Π΅Ρ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ наслСдования, заимствованный ΠΈΠ· ΡΠ·Ρ‹ΠΊΠ° Π‘ΠΈΠΌΡƒΠ»Π°.

Π’Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ заявлСнный интСрфСйс, Π½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… (Ρ‚.Π΅. Ρ‚Π΅Π»ΠΎ с ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π½ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ) Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… Ρ„ΠΈΠ³ΡƒΡ€, ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Ρ‹ слуТСбным словом virtual (Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅). Π’ Π‘ΠΈΠΌΡƒΠ»Π΅ ΠΈ Π‘++ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚: «Ρ„ункция ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° ΠΏΠΎΠ·Π΄Π½Π΅Π΅ Π² ΠΊΠ»Π°ΡΡΠ΅, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠΌ ΠΎΡ‚ Π΄Π°Π½Π½ΠΎΠ³ΠΎ» .

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅, ΠΊΠ°ΠΊΠΎΠΉ класс Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ; ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ класса; ΠΎΠ±Ρ‰Π½ΠΎΡΡ‚ΡŒ классов Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚Π΅ явно с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ наслСдования.

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

НахоТдСниС общности срСди ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² систСмы прСдставляСт собой Π½Π΅Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ процСсс. Π‘Ρ‚Π΅ΠΏΠ΅Π½ΡŒ Ρ‚Π°ΠΊΠΎΠΉ общности зависит ΠΎΡ‚ ΡΠΏΠΎΡΠΎΠ±Π° проСктирования систСмы. Π’ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ проСктирования выявлСниС общности классов Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ постоянной Ρ†Π΅Π»ΡŒΡŽ. Она достигаСтся двумя способами: Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… классов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΊΠ°ΠΊ «ΠΊΠΈΡ€ΠΏΠΈΡ‡ΠΈ» ΠΏΡ€ΠΈ построСнии Π΄Ρ€ΡƒΠ³ΠΈΡ…, Π»ΠΈΠ±ΠΎ поиском ΠΏΠΎΡ…ΠΎΠΆΠΈΡ… классов для выдСлСния ΠΈΡ… ΠΎΠ±Ρ‰Π΅ΠΉ части Π² ΠΎΠ΄ΠΈΠ½ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс.

Для прСдставлСния Π½Π° Π‘++ мноТСства взаимозависимых классов ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ друТСствСнныС классы ($$ 5.4.1).

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ способ выраТСния общности понятий Π² ΡΠ·Ρ‹ΠΊΠ΅ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ Ρ‚ΠΈΠΏΠ°. Π¨Π°Π±Π»ΠΎΠ½Π½Ρ‹ΠΉ класс Π·Π°Π΄Π°Π΅Ρ‚ Ρ†Π΅Π»ΠΎΠ΅ сСмСйство классов. НапримСр, ΡˆΠ°Π±Π»ΠΎΠ½Π½Ρ‹ΠΉ класс список Π·Π°Π΄Π°Π΅Ρ‚ классы Π²ΠΈΠ΄Π° «ΡΠΏΠΈΡΠΎΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² T», Π³Π΄Π΅ T ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ Ρ‚ΠΈΠΏΠΎΠΌ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΡˆΠ°Π±Π»ΠΎΠ½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΊΠ°ΠΊ получаСтся Π½ΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΏ ΠΈΠ· Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π‘Π°ΠΌΡ‹Π΅ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ΡˆΠ°Π±Π»ΠΎΠ½Π½Ρ‹Π΅ классы — это ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹, Π² Ρ‡Π°ΡΡ‚ности, списки, массивы ΠΈ Π°ΡΡΠΎΡ†ΠΈΠ°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ массивы.

Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π½Ρ‹ΠΉ Π‘ (ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½ΠΎΠ³ΠΎ ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ³ΠΎ программирования)

Минимальная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½ΠΎΠ³ΠΎ программирования Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, арифмСтичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈ Ρ†ΠΈΠΊΠ»Ρ‹. Помимо этого Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ прСдоставлСны ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²Π²ΠΎΠ΄Π°Π²Ρ‹Π²ΠΎΠ΄Π°. Π‘Π°Π·ΠΎΠ²Ρ‹Π΅ языковыС срСдства Π‘++ унаслСдовал ΠΎΡ‚ Π‘ (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ), Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ.

Бамая зачаточная концСпция ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ рСализуСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Ρ€Π°Π·Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ трансляции.

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° абстракции Π΄Π°Π½Π½Ρ‹Ρ…

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

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования

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

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

ΠŸΡ€Π΅Π΄Π΅Π»Ρ‹ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²Π°

Π―Π·Ρ‹ΠΊ Π‘++ проСктировался ΠΊΠ°ΠΊ «Π»ΡƒΡ‡ΡˆΠΈΠΉ Π‘», ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ Π°Π±ΡΡ‚Ρ€Π°ΠΊΡ†ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. ΠŸΡ€ΠΈ этом ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½Ρ‹ΠΌ для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° основных Π·Π°Π΄Π°Ρ‡ систСмного программирования.

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

— ΠΈΠ΄Ρ‚ΠΈ Π½Π° Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… ΠΌΠ°ΡˆΠΈΠ½Π°Ρ…;

— ΡΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ систСмами ΠΈ ΡΠ·Ρ‹ΠΊΠ°ΠΌΠΈ;

— ΡΠΎΠΏΠ΅Ρ€Π½ΠΈΡ‡Π°Ρ‚ΡŒ с Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ языками программирования Π² ΡΡ„фСктивности выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹;

— Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½Ρ‹ΠΌ Π²ΠΎ Π²ΡΠ΅Ρ… основных областях прилоТСния.

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

Π”Π°Π»Π΅Π΅, нСльзя Ρ€Π°ΡΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° ΡˆΠΈΡ€ΠΎΠΊΠΎΠ΅ использованиС искомого языка программирования ΠΊΠ°ΠΊ языка ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния, Ссли рСализация Π΅Π³ΠΎ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ полагаСтся Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π² ΠΌΠ°ΡˆΠΈΠ½Π°Ρ… с Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ.

Если Π½Π΅ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π² ΡΠ·Ρ‹ΠΊ возмоТности Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ уровня, Ρ‚ΠΎ ΠΏΡ€ΠΈΠ΄Π΅Ρ‚ся для основных Π·Π°Π΄Π°Ρ‡ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° областСй прилоТСния ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ языки Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ уровня, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π‘ ΠΈΠ»ΠΈ ассСмблСр. Но Π‘++ проСктировался с Ρ€Π°ΡΡ‡Π΅Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² Π½Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ всС, Ρ‡Ρ‚ΠΎ допустимо Π½Π° Π‘, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Π±Π΅Π· увСличСния Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния. Π’ΠΎΠΎΠ±Ρ‰Π΅, Π‘++ проСктировался, исходя ΠΈΠ· ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°, Ρ‡Ρ‚ΠΎ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Ρ‚ΡŒ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Ρ‚Ρ€Π°Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ ΠΏΠ°ΠΌΡΡ‚ΠΈ, Ссли Ρ‚ΠΎΠ»ΡŒΠΊΠΎ этого явно Π½Π΅ ΠΏΠΎΠΆΠ΅Π»Π°Π΅Ρ‚ сам программист.

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

Π‘++ проСктировался для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°, Ρ‡Ρ‚ΠΎ всякая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΅ΡΡ‚ΡŒ модСль Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ понятий, Π° ΠΊΠ»Π°ΡΡ являСтся ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ прСдставлСниСм понятия, взятого ΠΈΠ· ΠΎΠ±Π»Π°ΡΡ‚ΠΈ прилоТСния ($$ 12.2). ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ классы ΠΏΡ€ΠΎΠ½ΠΈΠ·Ρ‹Π²Π°ΡŽΡ‚ всю ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° Π‘++, ΠΈ Π½Π°Π»Π°Π³Π°ΡŽΡ‚ся ТСсткиС трСбования Π½Π° Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ понятия класса, ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² класса ΠΈ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΡ. Если Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΠ»ΠΈ слишком Π½Π°ΠΊΠ»Π°Π΄Π½ΠΎ, Ρ‚ΠΎ ΠΎΠ½ΠΈ просто Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ, ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ выродятся Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° «Π»ΡƒΡ‡ΡˆΠ΅ΠΌ Π‘». Π—Π½Π°Ρ‡ΠΈΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ ΡΡƒΠΌΠ΅Π΅Ρ‚ Π½Π°ΡΠ»Π°Π΄ΠΈΡ‚ΡŒΡΡ Ρ‚Π΅ΠΌΠΈ возмоТностями, Ρ€Π°Π΄ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ…, собствСнно, ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Π»ΡΡ язык.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Как Π±Ρ‹Π»ΠΎ ΠΎΠ±Π΅Ρ‰Π°Π½ΠΎ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΈΠ·Π΄Π°Π½ΠΈΠΈ ΠΊΠ½ΠΈΠ³ΠΈ «Π‘ΡŒΠ΅Ρ€Π½ Бтрауструп. Π―Π·Ρ‹ΠΊ программирования Π‘++ «, запросы ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ Π‘++. Π•Π³ΠΎ направлял ΠΎΠΏΡ‹Ρ‚ ΡˆΠΈΡ€ΠΎΠΊΠΎΠ³ΠΎ ΠΊΡ€ΡƒΠ³Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… Π² Ρ€Π°Π·Π½Ρ‹Ρ… областях программирования. Π—Π° ΡˆΠ΅ΡΡ‚ΡŒ Π»Π΅Ρ‚, ΠΎΡ‚Π΄Π΅Π»ΡΡŽΡ‰ΠΈΡ… нас ΠΎΡ‚ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ издания описания Π‘++, число ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ возросло Π² ΡΠΎΡ‚Π½ΠΈ Ρ€Π°Π·. Π—Π° ΡΡ‚ΠΈ Π³ΠΎΠ΄Ρ‹ Π±Ρ‹Π»ΠΈ усвоСны ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡƒΡ€ΠΎΠΊΠΈ, Π±Ρ‹Π»ΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Ρ‹ ΠΈ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΠ»ΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ своС ΠΏΡ€Π°Π²ΠΎ Π½Π° ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠ΅ΠΌΡ‹ программирования.

Π―Π·Ρ‹ΠΊ C++ явился ΠΌΠΎΡ‰Π½Ρ‹ΠΌ ΠΈ ΡΡ‚Ρ€Π΅ΠΌΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Ρ‹Π²ΠΊΠΎΠΌ Π² Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠΈ программирования. C++ ΠΈ ΠΏΠΎ ΡΠ΅ΠΉ дСнь Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Π³ΠΎΡΠΏΠΎΠ΄ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ срСди языков программирования Π² ΠΌΠΈΡ€Π΅. ΠžΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ мноТСство ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… программистов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΅Π³ΠΎ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Ρ€Π°Π·Π½ΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ². ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, этот язык Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ своС солидноС ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΅Ρ‰Ρ‘ Π½Π΅ ΠΎΠ΄ΠΈΠ½ Π³ΠΎΠ΄, ΠΏΡ€ΠΈ этом ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Ρ€Π°Π·Π²ΠΈΠ²Π°ΡΡΡŒ ΠΈ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΡƒΡΡΡŒ.

1. «Π‘ΡŒΠ΅Ρ€Π½ Бтрауструп. Π―Π·Ρ‹ΠΊ программирования Π‘++»

2. ДТСсс Π»ΠΈΠ±Π΅Ρ€Ρ‚ΠΈ, «ΠžΡΠ²ΠΎΠΉ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ C++ Π·Π° 21 дСнь», ΠΈΠ·Π΄. Π”ΠΎΠΌ «Π’ΠΈΠ»ΡŒΡΠΌΡ», Москва — Π‘Π°Π½ΠΊΡ‚-ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³ — КиСв, 2001

3. Н. Π‘Π΅ΠΊΡƒΠ½ΠΎΠ², «Π‘Π°ΠΌΠΎΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒ Visual C++ 6», ΠΈΠ·Π΄. «Π‘Π₯Π’-ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³», Π‘Π°Π½ΠΊΡ‚-ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³, 2003

Бсылки Π½Π° Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρƒ

Π—Π΄Π΅ΡΡŒ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ список ΠΊΠ½ΠΈΠ³ ΠΈ ΡΡ‚Π°Ρ‚Π΅ΠΉ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅ΡΡ‚ΡŒ прямыС ссылки, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚Π΅Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‚ΡΡ.

[1] A.V.Aho, J.E.Hopcroft, and J.D.Ulman: Data Structures and Algoritms. Addison-Wesley, Reading, Massachusetts. 1983.

[2] O-J.Dahl, B. Myrhaug, and K. Nugaard: SIMULA Common Base Language. Norwegian Computing Ctnter S-22. Oslo, Norway. 1970

[3] O-J.Dahl and C.A.R.Hoare: Hierarhical Program Construction in Structured Programming. Academic Press, New York. 1972. pp. 174−220.

[4] Margaret A. Ellis and Bjarne Stroustrup: The Annotated C++ Reference Manual. Addison-Wesley, Reading, Massachusetts. 1990.

[5] A. Goldberg and D. Rodson: SMALLTALK-80 — The Language and Its Implementation. Addison-Wesley, Reading, Massachusetts. 1983.

[6] R.E.Griswold et.al.: The Snobol14 Programming Language. Prentice-Hall, Englewood Cliffs, New Jersy, 1970.

[7] R.E.Griswold and M.T.Griswold: The ICON Programming Language. Prentice-Hall, Englewood Cliffs, New Jersy. 1983.

[8] Brian W. Kernighan and Dennis M. Ritchie: The C Programming Language. Prentice-Hall, Englewood Cliffs, New Jersy. 1978. Second edition 1988.

[9] Andrew Koenig and Bjarne Stroustrup: C++: As Close to C as possible — but no closer. The C++ Report. Vol.1 No.7. July 1989.

[10] Andrew Koenig and Bjarne Stroustrup: Exception Handling for C++ (revised). Proc USENIX C++ Conference, April 1990. Also, Journal of Object Oriented Programming, Vol.3 No.2, July/August 1990. pp.16−33.

[11] Barbara Liskov et.al.: CLU Reference Manual. MIT/LCS/TR-225.

[12] George Orwell: 1984. Secker and Warburg, London. 1949.

[13] Martin Richards and Colin Whitby-Strevens: BCPL — The Language and Its Compiler. Cambridge University Press. 1980.

[14] L. Rosler: The Evolution of C — Past and Future. AT&T Bell Laboratories Technical Journal. Vol.63 No.8 Part 2. October 1984. pp.1685−1700.

[15] Ravi Sethi: Uniform Syntax for Type Expressions and Declarations. Software Practice & Experience, Vol.11. 1981. pp.623−628.

[16] Bjarne Stroustrup: Adding Classes to C: An Exercise in Language Evolution. Software Practice & Experience, Vol.13. 1983. pp.139−61.

[17] Bjarne Stroustrup: The C++ Programming Language. Addison-Wesley. 1986.

[18] Bjarne Stroustrup: Multiple Inheritance for C++. Proc. EUUG Spring Conference, May 1987. Also USENIX Computer Systems, Vol.2 No 4, Fall 1989.

[19] Bjarne Stroustrup and Jonathan Shopiro: A Set of C classes for Co-Routine Style Programming. Proc. USENIX C++ conference, Santa Fe. November 1987. pp.417−439.

[20] Bjarne Stroustrup: Type-safe Linkage for C++. USENIX Computer Systems, Vol.1 No.4 Fall 1988.

[21] Bjurne Stroustrup: Parameterized Type for C++. Proc. USENIX C++ Conference, Denver, October 1988. pp.1−18. Also, USENIX Computer Systems, Vol.2 No.1 Winter 1989.

[22] Bjarne Stroustrup: Standardizing C++. The C++ Report. Vol.1 No.1. January 1989.

[23] Bjarne Stroustrup: The Evolution of C++: 1985;1989. USENIX Computer Systems, Vol.2 No.3. Summer 1989.

[24] P.M.Woodward and S.G.Bond: Algol 68-R Users Guide. Her Majesty’s Stationery Office, London. 1974.

[25] UNIX Time-Sharing System: Programmer’s Manual. Research Version, Tenth Edition. AT&T Bell Laboratories, Murray Hill, New Jersy, February 1985.

[26] Aake Wilkstroem: Functional Programming Using ML. Prentice-Hall, Englewood Cliffs, New Jersy. 1987.

[27] X3 Secretariat: Standard — The C Language. X3J11/90−013. Computer and Business Equipment Manufactures Association, 311 First Street, NW, Suite 500, Washington, DC 20 001, USA.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ