ВсС ΠΎ Ρ‚ΡŽΠ½ΠΈΠ½Π³Π΅ Π°Π²Ρ‚ΠΎ

ΠšΡ‚ΠΎ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π» c. Adventik β€” полносСрвисноС digital–агСнтство. Π―Π·Ρ‹ΠΊ Π‘ ΠΈ UNIX

Когда Π’Π°ΡˆΠ° рСпутация Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° Π’Π°ΡˆΡƒ ΠΏΡ€ΠΈΠ±Ρ‹Π»ΡŒ

ΠšΠΎΠΌΡŒΡŽΠ½ΠΈΡ‚ΠΈ-ΠΌΠ΅Π½Π΅Π΄ΠΆΠΌΠ΅Π½Ρ‚

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Tone of Voice. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Π°Ρ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΊΠ°ΠΊ Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ…, Ρ‚Π°ΠΊ ΠΈ ΠΏΠΎΠ·ΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² ΠΎΡ‚ Π»ΠΈΡ†Π° Π±Ρ€Π΅Π½Π΄Π°. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ коммуникациями ΠΏΠΎ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ сцСнариям. Врансляция ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½Ρ‹Ρ… ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ² Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΡƒ.

АгСнты влияния

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ Β«Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΎΠ²Β» Π½Π° Ρ„ΠΎΡ€ΡƒΠΌΠ°Ρ… ΠΈ Π² ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… сСтях. Π˜ΠΌΠ΅Π΅Ρ‚ΡΡ Π±Π°Π·Π° ΠΏΡ€ΠΎΠΊΠ°Ρ‡Π΅Π½Π½Ρ‹Ρ… ΠΈ ΠΆΠΈΠ²Ρ‹Ρ… Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ΠΎΠ² Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ Π½Π° 300 ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΊΠ°Ρ….

Π Π°Π±ΠΎΡ‚Π° с ΠΎΡ‚Π·Ρ‹Π²Π°ΠΌΠΈ

НаписаниС, согласованиС ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π·Ρ‹Π²ΠΎΠ² ΠΎ Π±Ρ€Π΅Π½Π΄Π΅ Π½Π° Ρ‚ΠΎΠΏΠΎΠ²Ρ‹Ρ… ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΊΠ°Ρ… ΠΈ сайтах-ΠΎΡ‚Π·ΠΎΠ²ΠΈΠΊΠ°Ρ…. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² ΠΏΠΎΠ·ΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΈΠ· поисковой Π²Ρ‹Π΄Π°Ρ‡ΠΈ постСпСнно вытСсняСтся Π½Π΅Π³Π°Ρ‚ΠΈΠ².

ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ соц.ΠΌΠ΅Π΄ΠΈΠ°

Π Π°Π±ΠΎΡ‚Π° с систСмами Youscan, IQbuzz, Brand Analytics. ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠΉ Π±Ρ€Π΅Π½Π΄Π°. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… инсайтов, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ΅ Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Π½Π΅Π³Π°Ρ‚ΠΈΠ². НСзамСнимый инструмСнт для контроля ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ связи ΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ².

Аналитика ΠΈ исслСдования

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

SERM

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ Π°Π½Π°Π»ΠΈΠ· поисковых Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² ΠΏΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π½Π½Ρ‹ΠΌ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΈΠΊΠ°ΠΌ. Π‘Π±ΠΎΡ€ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠΉ ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ Π² соц.сСтях, Π½Π° Ρ„ΠΎΡ€ΡƒΠΌΠ°Ρ… ΠΈ новостных сайтах. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° стратСгии Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ. ΠšΠ»ΠΈΠ΅Π½Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡƒΡŽ Π²Ρ‹Π΄Π°Ρ‡Ρƒ Π² ВОП10.

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ создания

Π―Π·Ρ‹ΠΊ Π²ΠΎΠ·Π½ΠΈΠΊ Π² Π½Π°Ρ‡Π°Π»Π΅ 1980-Ρ… Π³ΠΎΠ΄ΠΎΠ², ΠΊΠΎΠ³Π΄Π° сотрудник Ρ„ΠΈΡ€ΠΌΡ‹ Bell Labs Π‘ΡŒΡ‘Ρ€Π½ Бтрауструп ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π» ряд ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ языку C ΠΏΠΎΠ΄ собствСнныС Π½ΡƒΠΆΠ΄Ρ‹. Когда Π² ΠΊΠΎΠ½Ρ†Π΅ 1970-Ρ… Π³ΠΎΠ΄ΠΎΠ² Бтрауструп Π½Π°Ρ‡Π°Π» Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Bell Labs Π½Π°Π΄ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ (Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΊ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½Ρ‹Ρ… Π²Ρ‹Π·ΠΎΠ²ΠΎΠ²), ΠΎΠ½ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ», Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ примСнСния ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π² Ρ‚ΠΎ врСмя языков модСлирования ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ нСэффСктивными, Π° ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ высокоэффСктивных ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Ρ… языков слишком слоТно ΠΈΠ·-Π·Π° ΠΈΡ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠΉ Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π’Π°ΠΊ, язык Π‘ΠΈΠΌΡƒΠ»Π° ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Π°ΠΊΠΈΠ΅ возмоТности, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ Π±Ρ‹ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ большого ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ слишком ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, Π° язык BCPL достаточно быстр, Π½ΠΎ слишком Π±Π»ΠΈΠ·ΠΎΠΊ ΠΊ языкам Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ уровня ΠΈ Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ большого ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния.

Вспомнив ΠΎΠΏΡ‹Ρ‚ своСй диссСртации, Бтрауструп Ρ€Π΅ΡˆΠΈΠ» Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ язык C (ΠΏΡ€Π΅Π΅ΠΌΠ½ΠΈΠΊ BCPL) возмоТностями, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΌΠΈΡΡ Π² языкС Π‘ΠΈΠΌΡƒΠ»Π°. Π―Π·Ρ‹ΠΊ C, Π±ΡƒΠ΄ΡƒΡ‡ΠΈ Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ языком систСмы UNIX, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ Bell, являСтся быстрым, ΠΌΠ½ΠΎΠ³ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ пСрСносимым. Бтрауструп Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΠΊ Π½Π΅ΠΌΡƒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с классами ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ практичСскиС Π·Π°Π΄Π°Ρ‡ΠΈ модСлирования оказались доступными для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠ°ΠΊ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ (благодаря использованию Π‘ΠΈΠΌΡƒΠ»Π°-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… классов), Ρ‚Π°ΠΊ ΠΈ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ вычислСний (благодаря Π±Ρ‹ΡΡ‚Ρ€ΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΈΡŽ C). Π’ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π² C Π±Ρ‹Π»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ классы (с инкапсуляциСй), наслСдованиС классов, строгая ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ‚ΠΈΠΏΠΎΠ², inline-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Π Π°Π½Π½ΠΈΠ΅ вСрсии языка, ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ имСновавшСгося Β«C with classesΒ» (Β«Π‘ΠΈ с классами»), стали доступны с 1980 Π³ΠΎΠ΄Π°.

Разрабатывая C с классами, Бтрауструп написал ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ cfront β€” транслятор, ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ исходный ΠΊΠΎΠ΄ C с классами Π² исходный ΠΊΠΎΠ΄ простого C. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄ Π½ΠΎΠ²Ρ‹ΠΌ языком ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅, примСняя ΡƒΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‰ΡƒΡŽΡΡ Π² UNIX инфраструктуру для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° C. Новый язык, Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎ для Π°Π²Ρ‚ΠΎΡ€Π°, ΠΏΡ€ΠΈΠΎΠ±Ρ€Ρ‘Π» Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ срСди ΠΊΠΎΠ»Π»Π΅Π³ ΠΈ вскорС Бтрауструп ΡƒΠΆΠ΅ Π½Π΅ ΠΌΠΎΠ³ Π»ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ, отвСчая Π½Π° тысячи вопросов.

ΠŸΡ€ΠΈ создании C++ Π‘ΡŒΡ‘Ρ€Π½ Бтрауструп Ρ…ΠΎΡ‚Π΅Π»
  • ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ язык со статичСскими Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΠΌΠΎΡΡ‚ΡŒΡŽ языка C.
  • НСпосрСдствСнно ΠΈ всСстороннС ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ мноТСство стилСй программирования, Π² Ρ‚ΠΎΠΌ числС ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Π°Π±ΡΡ‚Ρ€Π°ΠΊΡ†ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΠ±ΠΎΠ±Ρ‰Ρ‘Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅.
  • Π”Π°Ρ‚ΡŒ программисту свободу Π²Ρ‹Π±ΠΎΡ€Π°, Π΄Π°ΠΆΠ΅ Ссли это даст Π΅ΠΌΡƒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ.
  • Максимально ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с C, Ρ‚Π΅ΠΌ самым дСлая Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ Π»Ρ‘Π³ΠΊΠΈΠΉ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΎΡ‚ программирования Π½Π° C.
  • Π˜Π·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Ρ€Π°Π·Π½ΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ C ΠΈ C++: любая конструкция, допустимая Π² ΠΎΠ±ΠΎΠΈΡ… языках, Π΄ΠΎΠ»ΠΆΠ½Π° Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· Π½ΠΈΡ… ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ ΠΈ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ повСдСнию ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.
  • Π˜Π·Π±Π΅Π³Π°Ρ‚ΡŒ особСнностСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ зависят ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈΠ»ΠΈ Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ.
  • «НС ΠΏΠ»Π°Ρ‚ΠΈΡ‚ΡŒ Π·Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡΒ» β€” Π½ΠΈΠΊΠ°ΠΊΠΎΠ΅ языковоС срСдство Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ сниТСнию ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… Π΅Π³ΠΎ.
  • НС Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ слишком услоТнённой срСды программирования.

Π’Ρ‹Π±ΠΎΡ€ ΠΈΠΌΠ΅Π½Π½ΠΎ C Π² качСствС Π±Π°Π·Ρ‹ для создания Π½ΠΎΠ²ΠΎΠ³ΠΎ языка программирования ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ язык C:

1. являСтся ΠΌΠ½ΠΎΠ³ΠΎΡ†Π΅Π»Π΅Π²Ρ‹ΠΌ, Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½Ρ‹ΠΌ ΠΈ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΌ языком;
2. ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° систСмных Π·Π°Π΄Π°Ρ‡;
3. исполняСтся Π²Π΅Π·Π΄Π΅ ΠΈ Π½Π° всём;
4. стыкуСтся со срСдой программирования UNIX.

β€” Π‘. Бтрауструп. Π―Π·Ρ‹ΠΊ программирования C++. Π Π°Π·Π΄Π΅Π» 1.6

НСсмотря Π½Π° ряд извСстных нСдостатков языка C, Бтрауструп ΠΏΠΎΡˆΡ‘Π» Π½Π° Π΅Π³ΠΎ использованиС Π² качСствС основы, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Β«Π² C Π΅ΡΡ‚ΡŒ свои ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, Π½ΠΎ ΠΈΡ… ΠΈΠΌΠ΅Π» Π±Ρ‹ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ с нуля язык, Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ C Π½Π°ΠΌ извСстны». ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, это ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ быстро ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ компилятора (cfront), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ лишь выполнял Ρ‚Ρ€Π°Π½ΡΠ»ΡΡ†ΠΈΡŽ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Ρ… синтаксичСских элСмСнтов Π² ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ язык C.

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

  • сохранСниС Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠ΄Π°, написанного ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π½Π° C ΠΈ прямо пСрСнСсённого Π² C++;
  • ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ нСобходимости пСрСучивания программистов, Ρ€Π°Π½Π΅Π΅ ΠΈΠ·ΡƒΡ‡Π°Π²ΡˆΠΈΡ… C (ΠΈΠΌ трСбуСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ срСдства C++);
  • ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ языками ΠΏΡ€ΠΈ ΠΈΡ… совмСстном использовании («Ссли Π΄Π²Π° языка ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ совмСстно, ΠΈΡ… различия Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ, ΠΈΠ»ΠΈ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ большими, Ρ‡Ρ‚ΠΎΠ±Ρ‹ языки Π±Ρ‹Π»ΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΡƒΡ‚Π°Ρ‚ΡŒΒ»).

К 1983 Π³ΠΎΠ΄Ρƒ Π² язык Π±Ρ‹Π»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ возмоТности, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², ссылки, константы, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ свободной ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ, ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½Π°Ρ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ‚ΠΈΠΏΠΎΠ² ΠΈ Π½ΠΎΠ²Ρ‹ΠΉ ΡΡ‚ΠΈΠ»ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² (//). ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠΈΠΉΡΡ язык ΡƒΠΆΠ΅ пСрСстал Π±Ρ‹Ρ‚ΡŒ просто Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠΉ вСрсиСй классичСского C ΠΈ Π±Ρ‹Π» ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ ΠΈΠ· C с классами Π² Β«C++Β». Π•Π³ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ коммСрчСский выпуск состоялся Π² октябрС 1985 Π³ΠΎΠ΄Π°.

Имя языка, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠ΅Π΅ΡΡ Π² ΠΈΡ‚ΠΎΠ³Π΅, происходит ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΡƒΠ½Π°Ρ€Π½ΠΎΠ³ΠΎ постфиксного ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π° C ++ (ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ).

Π”ΠΎ Π½Π°Ρ‡Π°Π»Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ стандартизации язык развивался Π² основном силами Бтрауструпа Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° запросы программистского сообщСства. Π€ΡƒΠ½ΠΊΡ†ΠΈΡŽ стандартных описаний языка выполняли написанныС Бтрауструпом ΠΏΠ΅Ρ‡Π°Ρ‚Π½Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎ C++ (описаниС языка, справочноС руководство ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅).

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ стандартов

Π’ 1985 Π³ΠΎΠ΄Ρƒ Π²Ρ‹ΡˆΠ»ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Β«Π―Π·Ρ‹ΠΊΠ° программирования C++Β», ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π΅ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ описаниС этого языка, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ Π²Π°ΠΆΠ½ΠΎ ΠΈΠ·-Π·Π° отсутствия ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ стандарта.


Π’ 1989 Π³ΠΎΠ΄Ρƒ состоялся Π²Ρ‹Ρ…ΠΎΠ΄ C++ вСрсии 2.0. Π•Π³ΠΎ Π½ΠΎΠ²Ρ‹Π΅ возмоТности Π²ΠΊΠ»ΡŽΡ‡Π°Π»ΠΈ мноТСствСнноС наслСдованиС, абстрактныС классы, статичСскиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-Ρ‡Π»Π΅Π½Ρ‹, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-константы ΠΈ Π·Π°Ρ‰ΠΈΡ‰Ρ‘Π½Π½Ρ‹Π΅ Ρ‡Π»Π΅Π½Ρ‹. Π’ 1990 Π³ΠΎΠ΄Ρƒ Π²Ρ‹ΡˆΠ»ΠΎ Β«ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ справочноС руководство ΠΏΠΎ C++Β», ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΠΎΠ΅ впослСдствии Π² основу стандарта. ПослСдниС обновлСния Π²ΠΊΠ»ΡŽΡ‡Π°Π»ΠΈ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹, ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, пространства ΠΈΠΌΡ‘Π½, Π½ΠΎΠ²Ρ‹Π΅ способы привСдСния Ρ‚ΠΈΠΏΠΎΠ² ΠΈ булСвский Ρ‚ΠΈΠΏ.

Бтандартная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° C++ Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π·Π²ΠΈΠ²Π°Π»Π°ΡΡŒ вмСстС с Π½ΠΈΠΌ. ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΊ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ C++ стали ΠΏΠΎΡ‚ΠΎΠΊΠΈ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ срСдства для Π·Π°ΠΌΠ΅Π½Ρ‹ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ C printf ΠΈ scanf. ПозднСС самым Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ΠΌ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ стало Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π² Π½Π΅Ρ‘ Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ шаблонов.

Π’ 1998 Π³ΠΎΠ΄Ρƒ Π±Ρ‹Π» ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ стандарт языка ISO/IEC 14882:1998 (извСстный ΠΊΠ°ΠΊ C++98), Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΈΡ‚Π΅Ρ‚ΠΎΠΌ ΠΏΠΎ стандартизации C++ (ISO/IEC JTC1/SC22/WG21 working group). Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚ C++ Π½Π΅ описываСт способы имСнования ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅Ρ‚Π°Π»ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ возмоТности, связанныС с дСталями Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ нСсовмСстимым ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, созданный Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ компиляторами. Однако для этого Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΠΌΠΈ Π»ΠΈΡ†Π°ΠΌΠΈ создано мноТСство стандартов для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм.

Π’ 2005 Π³ΠΎΠ΄Ρƒ Π±Ρ‹Π» Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½ ΠΎΡ‚Ρ‡Ρ‘Ρ‚ Library Technical Report 1 (ΠΊΡ€Π°Ρ‚ΠΊΠΎ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ TR1). НС являясь ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Ρ‡Π°ΡΡ‚ΡŒΡŽ стандарта, ΠΎΡ‚Ρ‡Ρ‘Ρ‚ описываСт Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, ΠΊΠ°ΠΊ оТидалось Π°Π²Ρ‚ΠΎΡ€Π°ΠΌΠΈ, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ языка C++. Π‘Ρ‚Π΅ΠΏΠ΅Π½ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ TR1 ΡƒΠ»ΡƒΡ‡ΡˆΠ°Π΅Ρ‚ΡΡ ΠΏΠΎΡ‡Ρ‚ΠΈ Π²ΠΎ всСх ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… компиляторах языка C++.

Π‘ 2009 Π³ΠΎΠ΄Π° вСлась Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ обновлСнию ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ стандарта, ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ вСрсиСй Π½ΠΎΠ²ΠΎΠ³ΠΎ стандарта спСрва Π±Ρ‹Π» C++09, Π° спустя Π³ΠΎΠ΄ C++0x, сСгодня β€” C++11, ΠΊΡƒΠ΄Π° Π±Ρ‹Π»ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ дополнСния Π² ядро языка ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Π² Ρ‚ΠΎΠΌ числС Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ TR1.

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

Никто Π½Π΅ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ ΠΏΡ€Π°Π²Π°ΠΌΠΈ Π½Π° язык C++, ΠΎΠ½ являСтся свободным. Однако сам Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ стандарта языка (Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‡Π΅Ρ€Π½ΠΎΠ²ΠΈΠΊΠΎΠ²) Π½Π΅ доступСн бСсплатно.

Π―Π·Ρ‹ΠΊ Π‘ ΠΈ UNIX

Π―Π·Ρ‹ΠΊ программирования Π‘ (читаСтся "Π‘ΠΈ") создан Π² Π½Π°Ρ‡Π°Π»Π΅ 70-Ρ… Π³ΠΎΠ΄ΠΎΠ², ΠΊΠΎΠ³Π΄Π° КСн Вомпсон ΠΈ Дэннис Π ΠΈΡ‚Ρ‡ΠΈ ΠΈΠ· Bell Labs Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π»ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму UNDC. Π‘Π½Π°Ρ‡Π°Π»Π° ΠΎΠ½ΠΈ создали Ρ‡Π°ΡΡ‚ΡŒ компилятора Π‘ , Π·Π°Ρ‚Π΅ΠΌ использовали Π΅Π΅ для компиляции ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΉ части компилятора Π‘ ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ компилятор для компиляции UNIX. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ систСма UNIX ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΠ»Π°ΡΡŒ Π² исходных ΠΊΠΎΠ΄Π°Ρ… Π½Π° Π‘ срСди унивСрситСтов ΠΈ Π»Π°Π±ΠΎΡ€Π°Ρ‚ΠΎΡ€ΠΈΠΉ, Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠ³ ΠΎΡ‚ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ исходный ΠΊΠΎΠ΄ Π½Π° языкС Π‘ Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ подходящСго компилятора Π‘ .

РаспространСниС исходного ΠΊΠΎΠ΄Π° сдСлало ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму UNIX ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠΉ; программист ΠΌΠΎΠ³ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму, Π° исходный ΠΊΠΎΠ΄ ΠΌΠΎΠ³ Π±Ρ‹Ρ‚ΡŒ пСрСнСсСн с ΠΎΠ΄Π½ΠΎΠΉ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ. БСгодня стандарт POSIX опрСдСляСт стандартный Π½Π°Π±ΠΎΡ€ систСмных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² UNIX, доступных Π² Π‘ , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π² вСрсиях UNIX, ΡΠ²Π»ΡΡŽΡ‰ΠΈΡ…ΡΡ POSIX-совмСстимыми. Π‘ Π±Ρ‹Π» Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΠΌ языком, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Вомсон ΠΈ Π ΠΈΡ‚Ρ‡ΠΈ Π² процСссС создания UNIX; ΠΏΠ΅Ρ€Π²Ρ‹ΠΌΠΈ двумя Π±Ρ‹Π»ΠΈ, разумССтся, А ΠΈ Π’ .

C ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ язык ассСмблСра

По ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½ΠΈΠΌ языком - BCPL, язык Π‘ Π±Ρ‹Π» ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ ΠΏΡƒΡ‚Π΅ΠΌ добавлСния Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹. НапримСр, Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… int ΠΌΠΎΠ³ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ для создания ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ числом Π±ΠΈΡ‚ΠΎΠ² (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ 16), Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… long ΠΌΠΎΠ³ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для создания Ρ†Π΅Π»ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ с большим числом Π±ΠΈΡ‚ΠΎΠ² (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ 32). Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… языков высокого уровня, Π‘ ΠΌΠΎΠ³ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с адрСсами памяти Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ ссылок. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π‘ сохранил ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ прямого доступа ΠΊ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΌΡƒ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΡŽ, Π΅Π³ΠΎ часто относят ΠΊ языкам срСднСго уровня ΠΈΠ»ΠΈ Π² ΡˆΡƒΡ‚ΠΊΡƒ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ "ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ языком ассСмблСра".

Π‘ - структурный язык программирования

Π§Ρ‚ΠΎ касаСтся Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΈ синтаксиса, Ρ‚ΠΎ Π‘ являСтся структурным языком программирования. Π’ Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ соврСмСнныС программисты мыслят Π² катСгориях классов ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², программисты Π½Π° Π‘ Π΄ΡƒΠΌΠ°ΡŽΡ‚ Π² катСгориях ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Π’ Π‘ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ собствСнныС абстрактныС Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово struct . Аналогично ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ собствСнныС Ρ†Π΅Π»Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ (пСрСчислСния) ΠΈ Π΄Π°Π²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ названия ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ Ρ‚ΠΈΠΏΠ°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова typedef . Π’ этом смыслС Π‘ являСтся структурным языком с Π·Π°Ρ€ΠΎΠ΄Ρ‹ΡˆΠ°ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования.

Бтандартизация языка Π‘

Π¨ΠΈΡ€ΠΎΠΊΠΎΠ΅ распространСниС языка C Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ°Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ² (ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹ΠΌΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ) ΠΏΡ€ΠΈΠ²Π΅Π»ΠΎ, ΠΊ соТалСнию, ΠΊΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌ вариациям языка. Они Π±Ρ‹Π»ΠΈ ΠΏΠΎΡ…ΠΎΠΆΠΈ, Π½ΠΎ нСсовмСстимы Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ. Π­Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Π½ΡƒΠΆΠ΄Π°Π²ΡˆΠΈΡ…ΡΡ Π² написании совмСстимых ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ…. Π‘Ρ‚Π°Π»ΠΎ ясно, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° стандартная вСрсия C . Π’ 1983Π³. ANSI (АмСриканский ΠΠ°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠšΠΎΠΌΠΈΡ‚Π΅Ρ‚ Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚ΠΎΠ²) сформировал тСхничСский ΠΊΠΎΠΌΠΈΡ‚Π΅Ρ‚ X3J11 для создания стандарта языка C (Ρ‡Ρ‚ΠΎΠ±Ρ‹ "ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ нСдвусмыслСнноС ΠΈ машинно-нСзависимоС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ языка"). Π’ 1989 стандарт Π±Ρ‹Π» ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½. ANSI скоопСрировался с ISO (ΠœΠ΅ΠΆΠ΄ΡƒΠ½Π°Ρ€ΠΎΠ΄Π½ΠΎΠΉ ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚ΠΎΠ²), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ C Π² ΠΌΠ΅ΠΆΠ΄ΡƒΠ½Π°Ρ€ΠΎΠ΄Π½ΠΎΠΌ ΠΌΠ°ΡΡˆΡ‚Π°Π±Π΅; совмСстный стандарт Π±Ρ‹Π» ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ Π² 1990 Π³ΠΎΠ΄Ρƒ ΠΈ Π½Π°Π·Π²Π°Π½ ANSI/ISO 9899:1990. Π­Ρ‚ΠΎΡ‚ стандарт ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΡƒΠ΅Ρ‚ΡΡ Π΄ΠΎ сих ΠΏΠΎΡ€ ΠΈ поддСрТиваСтся Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎΠΌ Ρ„ΠΈΡ€ΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² компиляторов.

Π ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ Π‘++

Π‘ΡŒΠ΅Ρ€Π½ Бтрауструп высвободил ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π» Π‘ ΠΏΡƒΡ‚Π΅ΠΌ пСрСнСсСния возмоТностСй классов Simula 67 Π² Π‘ . ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π½ΠΎΠ²Ρ‹ΠΉ язык носил имя "Π‘ с классами" ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΡ‚ΠΎΠΌ стал Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ C++ . Π―Π·Ρ‹ΠΊ C++ достиг популярности, Π±ΡƒΠ΄ΡƒΡ‡ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΌ Π² Bell Labs, ΠΏΠΎΠ·ΠΆΠ΅ ΠΎΠ½ Π±Ρ‹Π» пСрСнСсСн Π² Π΄Ρ€ΡƒΠ³ΠΈΠ΅ индустрии ΠΈ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ†ΠΈΠΈ. БСгодня это ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярных (ΠΈ Π°Π²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π½Ρ‹Ρ…) языков программирования Π² ΠΌΠΈΡ€Π΅. C++ наслСдуСт ΠΊΠ°ΠΊ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠ΅, Ρ‚Π°ΠΊ ΠΈ ΠΏΠ»ΠΎΡ…ΠΈΠ΅ стороны Π‘ .

ΠžΡ‚ΠΊΡ€ΠΎΠ²Π΅Π½ΠΈΡ Π‘ΡŒΠ΅Ρ€Π½Π° Бтрауструп

Π‘ΡŒΠ΅Ρ€Π½ Бтрауструп: "Π― ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π» C++ , записал Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ» ΠΏΠ΅Ρ€Π²ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ. Π― Π²Ρ‹Π±Ρ€Π°Π» ΠΈ сформулировал ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΈ проСктирования C++ , Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π» Π΅Π³ΠΎ основныС возмоТности ΠΈ ΠΎΡ‚Π²Π΅Ρ‡Π°Π» Π·Π° ΡΡƒΠ΄ΡŒΠ±Ρƒ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡŽ языка Π² ΠΊΠΎΠΌΠΈΡ‚Π΅Ρ‚Π΅ ΠΏΠΎ стандартизации C++ ", - ΠΏΠΈΡˆΠ΅Ρ‚ Π°Π²Ρ‚ΠΎΡ€ самого популярного языка программирования. - "Π―Π·Ρ‹ΠΊ C++ ΠΌΠ½ΠΎΠ³ΠΈΠΌ обязан языку C , ΠΈ язык C остаСтся подмноТСством языка C++ (Π½ΠΎ Π² C++ устранСны нСсколько ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Ρ… Π±Ρ€Π΅ΡˆΠ΅ΠΉ систСмы Ρ‚ΠΈΠΏΠΎΠ² C). Π― Ρ‚Π°ΠΊΠΆΠ΅ сохранил срСдства C , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ достаточно Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΌΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒΡΡ с самыми критичСскими систСмными Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ. Π―Π·Ρ‹ΠΊ C , Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΌΠ½ΠΎΠ³ΠΈΠΌ обязан своСму ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΈΠΊΡƒ, BCPL; кстати, ΡΡ‚ΠΈΠ»ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² // Π±Ρ‹Π» взят Π² C++ ΠΈΠ· BCPL. Π”Ρ€ΡƒΠ³ΠΈΠΌ основным источником вдохновСния Π±Ρ‹Π» язык Simula67 . ΠšΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡ классов (с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΌΠΈ классами ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ функциями) Π±Ρ‹Π»Π° позаимствована ΠΈΠ· Π½Π΅Π³ΠΎ. БрСдства ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ помСщСния объявлСний Π² любом мСстС, Π³Π΄Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ записана инструкция, Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ Algol68 . "

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

НазваниС C++ Π²Ρ‹Π΄ΡƒΠΌΠ°Π» Π ΠΈΠΊ ΠœΠ°ΡΡΠΈΡ‚Ρ‚ΠΈ. НазваниС ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠΎΠ½Π½ΡƒΡŽ ΠΏΡ€ΠΈΡ€ΠΎΠ΄Ρƒ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΊ Π½Π΅ΠΌΡƒ ΠΎΡ‚ C . "++" - это опСрация приращСния Π² C . Π§ΡƒΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ΅ имя C+ являСтся синтаксичСской ошибкой; ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΎΠ½ΠΎ ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΎ использовано ΠΊΠ°ΠΊ имя совсСм Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ языка. Π—Π½Π°Ρ‚ΠΎΠΊΠΈ сСмантики C находят, Ρ‡Ρ‚ΠΎ C++ Ρ…ΡƒΠΆΠ΅, Ρ‡Π΅ΠΌ ++C . Названия D язык Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ», ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ являСтся Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ C ΠΈ Π² Π½Π΅ΠΌ Π½Π΅ дСлаСтся ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ ΠΈΡΡ†Π΅Π»ΡΡ‚ΡŒΡΡ ΠΎΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΏΡƒΡ‚Π΅ΠΌ выбрасывания Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… особСнностСй.

Π—Π°Ρ‡Π΅ΠΌ Π±Ρ‹Π» Π½ΡƒΠΆΠ΅Π½ Π‘++

Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ язык программирования C++ Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π°Π²Ρ‚ΠΎΡ€Ρƒ ΠΈ Π΅Π³ΠΎ Π΄Ρ€ΡƒΠ·ΡŒΡΠΌ Π½Π΅ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° ассСмблСрС, C ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… соврСмСнных языках высокого уровня. ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌ Π΅Π³ΠΎ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π±Ρ‹Π»ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ написаниС Ρ…ΠΎΡ€ΠΎΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π±ΠΎΠ»Π΅Π΅ простым ΠΈ приятным для ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ программиста. Плана Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ C++ Π½Π° Π±ΡƒΠΌΠ°Π³Π΅ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±Ρ‹Π»ΠΎ; ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, докумСнтация ΠΈ рСализация двигались ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. РазумССтся, внСшний интСрфСйс C++ Π±Ρ‹Π» написан Π½Π° C++ . Никогда Π½Π΅ сущСствовало "ΠŸΡ€ΠΎΠ΅ΠΊΡ‚Π° C++" ΠΈ "ΠšΠΎΠΌΠΈΡ‚Π΅Ρ‚Π° ΠΏΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ C++". ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ C++ развивался ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π²ΠΎ всСх направлСниях, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒΡΡ со слоТностями, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π² процСссС дискуссий Π°Π²Ρ‚ΠΎΡ€Π° с Π΅Π³ΠΎ Π΄Ρ€ΡƒΠ·ΡŒΡΠΌΠΈ ΠΈ ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈ.

Настоящий ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ C++

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

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

Π―Π·Ρ‹ΠΊ программирования C++ Π² настоящСС врСмя считаСтся Π³ΠΎΡΠΏΠΎΠ΄ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ языком, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ коммСрчСских ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ², 90% ΠΈΠ³Ρ€ ΠΏΠΈΡˆΡƒΡ‚ΡΡ Π½Π° Π‘++ с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ DirectX.

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

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠΈ:

  • Π₯.М.Π”Π΅ΠΉΡ‚Π΅Π», П.Π”ΠΆ.Π”Π΅ΠΉΡ‚Π΅Π» "Как ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° C++"
  • Π‘ΡŒΠ΅Ρ€Π½ Бтрауструп "Π―Π·Ρ‹ΠΊ программирования C++. 3-Π΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅."
  • Π‘ΠΈΠΌΠΎΠ½ Робинсон, Олли ΠšΠΎΡ€Π½Π΅Ρ, Π”ΠΆΠ΅ΠΉ Π“Π»ΠΈΠ½Π½ ΠΈ Π΄Ρ€. "C# для профСссионалов"
  • ДТСсс Π›ΠΈΠ±Π΅Ρ€Ρ‚ΠΈ "Освой ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Π‘++ Π·Π° 21 дСнь"
  • Бтанислав Π“ΠΎΡ€Π½Π°ΠΊΠΎΠ² "DirectX, ΡƒΡ€ΠΎΠΊΠΈ программирования Π½Π° Π‘++"

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

ПослСднСС обновлСниС: 28.08.2017

Π―Π·Ρ‹ΠΊ программирования Π‘++ прСдставляСт высокоуровнСвый ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ язык программирования ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния со статичСской Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для создания самых Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. На сСгодняшний дСнь Π‘++ являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· самых популярных ΠΈ распространСнных языков.

Π‘Π²ΠΎΠΈΠΌΠΈ корнями ΠΎΠ½ ΡƒΡ…ΠΎΠ΄ΠΈΡ‚ Π² язык Π‘ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ Π² 1969-1973 Π³ΠΎΠ΄Π°Ρ… Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Bell Labs программистом ДСннисом Π ΠΈΡ‚Ρ‡ΠΈ (Dennis Ritchie). Π’ Π½Π°Ρ‡Π°Π»Π΅ 1980-Ρ… Π³ΠΎΠ΄ΠΎΠ² датский программист Π‘ΡŒΠ΅Ρ€Π½ Бтрауструп (Bjarne Stroustrup), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² Ρ‚ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Π°Π» Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Bell Labs, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π» Π‘++ ΠΊΠ°ΠΊ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΊ языку Π‘ΠΈ. ЀактичСски Π²Π½Π°Ρ‡Π°Π»Π΅ C++ просто дополнял язык Π‘ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ возмоТностями ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования. И поэтому сам Бтрауструп Π²Π½Π°Ρ‡Π°Π»Π΅ Π½Π°Π·Ρ‹Π²Π°Π» Π΅Π³ΠΎ ΠΊΠ°ΠΊ "C with classes" ("Π‘ΠΈ с классами").

ВпослСдствии Π½ΠΎΠ²Ρ‹ΠΉ язык стал Π½Π°Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ. Π’ Π½Π΅Π³ΠΎ Π±Ρ‹Π»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ возмоТности, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅Π»Π°Π»ΠΈ Π΅Π³ΠΎ Π½Π΅ просто Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊ Π‘ΠΈ, Π° ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½ΠΎΠ²Ρ‹ΠΌ языком программирования. Π’ ΠΈΡ‚ΠΎΠ³Π΅ "Π‘ΠΈ с классами" Π±Ρ‹Π» ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ Π² Π‘++. И с Ρ‚Π΅Ρ… ΠΏΠΎ ΠΎΠ±Π° языка стали Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒΡΡ нСзависимо Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π°.

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

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

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

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ этапы развития

Π’ 1979-80 Π³ΠΎΠ΄Π°Ρ… Π‘ΡŒΠ΅Ρ€Π½ Бтрауструп Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π» Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΠΊ языку Π‘ΠΈ - "Π‘ΠΈ с классами". Π’ 1983 язык Π±Ρ‹Π» ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ Π² Π‘++.

Π’ 1985 Π³ΠΎΠ΄Ρƒ Π±Ρ‹Π»Π° Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π° пСрвая коммСрчСская вСрсия языка Π‘++, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠ½ΠΈΠ³ΠΈ "Π―Π·Ρ‹ΠΊΠ° программирования C++", которая прСдставляла ΠΏΠ΅Ρ€Π²ΠΎΠ΅ описаниС этого языка ΠΏΡ€ΠΈ отсутствии ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ стандарта.

Π’ 1989 Π±Ρ‹Π»Π° Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π° новая вСрсия языка C++ 2.0, которая Π²ΠΊΠ»ΡŽΡ‡Π°Π»Π° ряд Π½ΠΎΠ²Ρ‹Ρ… возмоТностСй. ПослС этого язык развивался ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ Π²ΠΏΠ»ΠΎΡ‚ΡŒ Π΄ΠΎ 2011 Π³ΠΎΠ΄Π°. Но ΠΏΡ€ΠΈ этом Π² 1998 Π³ΠΎΠ΄Ρƒ Π±Ρ‹Π»Π° прСдпринята пСрвая ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΏΠΎ стандартизации языка ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ISO (International Organiztion for Standartization). ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ стандарт ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ISO/IEC 14882:1998 ΠΈΠ»ΠΈ сокращСнно Π‘++98. Π’ дальнСйшСм Π² 2003 Π±Ρ‹Π»Π° ΠΈΠ·Π΄Π°Π½Π° новая вСрсия стандарта C++03.

Π’ 2011 Π³ΠΎΠ΄Ρƒ Π±Ρ‹Π» ΠΈΠ·Π΄Π°Π½ Π½ΠΎΠ²Ρ‹ΠΉ стандарт C++11, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТал мноТСство Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΉ ΠΈ ΠΎΠ±ΠΎΠ³Π°Ρ‰Π°Π» язык Π‘++ большим числом Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… возмоТностСй. ПослС этого Π² 2014 Π³ΠΎΠ΄Ρƒ Π±Ρ‹Π»ΠΎ Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½ΠΎ нСбольшоС Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊ стандарту, извСстноС Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ C++14. И Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ Ρ€Π΅Π»ΠΈΠ· языка Π½Π°ΠΌΠ΅Ρ‡Π΅Π½ Π½Π° 2017.

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€Ρ‹ ΠΈ срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

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

Π’Π°ΠΊΠΆΠ΅ для создания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ IDE, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Visual Studio, Netbeans, Eclipse, Qt ΠΈ Ρ‚.Π΄.

Благодаря Ρ‡Π΅ΠΌΡƒ слоТился Ρ‚Π°ΠΊΠΎΠΉ статус языка Π‘? Π˜ΡΡ‚ΠΎΡ€ΠΈΡ‡Π΅ΡΠΊΠΈ этот язык Π½Π΅ΠΎΡ‚Π΄Π΅Π»ΠΈΠΌ ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Unix, которая Π² наши Π΄Π½ΠΈ ΠΏΠ΅Ρ€Π΅ΠΆΠΈΠ²Π°Π΅Ρ‚ своС Π²Ρ‚ΠΎΡ€ΠΎΠ΅ Ρ€ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅. 60-Π΅ Π³ΠΎΠ΄Ρ‹ Π±Ρ‹Π»ΠΈ эпохой становлСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм ΠΈ языков программирования высокого уровня. Π’ Ρ‚ΠΎΡ‚ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ² нСзависимо Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π»ΠΈΡΡŒ ОБ ΠΈ компиляторы, Π° Π½Π΅Ρ€Π΅Π΄ΠΊΠΎ Π΄Π°ΠΆΠ΅ свои языки программирования (вспомним, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, PL/I). Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя, ΠΎΠ±Ρ‰Π½ΠΎΡΡ‚ΡŒ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈ этом ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΡƒΠΆΠ΅ стала ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎΠΉ. ΠžΡ‚Π²Π΅Ρ‚ΠΎΠΌ Π½Π° осознаниС этой общности стала ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму, Π° для этого понадобился Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ язык программирования. Π’Π°ΠΊΠΈΠΌ языком стал Π‘, Π° Unix стала ΠΏΠ΅Ρ€Π²ΠΎΠΉ ОБ, практичСски ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ написанной Π½Π° языкС высокого уровня.

ВСсная связь с Unix Π΄Π°Π»Π° языку Π‘ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ»ΠΈΠ³ΠΎΠ½ для ΠΎΠ±ΠΊΠ°Ρ‚ΠΊΠΈ, ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π½Π΅ Π±Ρ‹Π»ΠΎ Π² Ρ‚ΠΎ врСмя Π½ΠΈ Ρƒ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ языка. Π—Π°Π΄Π°Ρ‡ΠΈ систСмного программирования ΠΏΠΎ ΠΏΡ€Π°Π²Ρƒ ΡΡ‡ΠΈΡ‚Π°Π»ΠΈΡΡŒ Π² Ρ‚ΠΎ врСмя самыми слоТными Π² отрасли. Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ своСм ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ машинно-зависимыми, Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ мыслили ΠΈΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΈΠ½Π°Ρ‡Π΅, Ρ‡Π΅ΠΌ Π½Π° ассСмблСрС. Π―Π·Ρ‹ΠΊΠΈ высокого уровня ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π°Π»ΠΈΡΡŒ для ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ программирования ΠΈ лишь ΠΎΡ‡Π΅Π½ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Π»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для систСмных Ρ€Π°Π±ΠΎΡ‚, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° машин.

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

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

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

Π˜Ρ‚Π°ΠΊ, Π‘ Π²ΠΎΠ·Π½ΠΈΠΊ ΠΊΠ°ΠΊ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ язык систСмного программирования. Но ΠΎΠ½ Π½Π΅ остался Π² этих Ρ€Π°ΠΌΠΊΠ°Ρ…. К ΠΊΠΎΠ½Ρ†Ρƒ 80-Ρ… Π³ΠΎΠ΄ΠΎΠ² язык Π‘, оттСснив Fortran с ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π»ΠΈΠ΄Π΅Ρ€Π°, Π·Π°Π²ΠΎΠ΅Π²Π°Π» ΠΌΠ°ΡΡΠΎΠ²ΡƒΡŽ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ срСди программистов Π²ΠΎ всСм ΠΌΠΈΡ€Π΅ ΠΈ стал ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² самых Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡Π°Ρ…. ΠΠ΅ΠΌΠ°Π»ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ здСсь сыграло распространСниС Unix (Π° Π·Π½Π°Ρ‡ΠΈΡ‚ ΠΈ Π‘) Π² унивСрситСтской срСдС, Π³Π΄Π΅ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠ»ΠΎ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΡƒ Π½ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅ программистов.

Как ΠΈ всС языки, Π‘ постСпСнно ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π»ΡΡ, Π½ΠΎ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΠΉ Π½Π΅ носило Ρ€Π°Π΄ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π°. НаиболСС сущСствСнным ΠΈΠ· Π½ΠΈΡ…, ΠΏΠΎΠΆΠ°Π»ΡƒΠΉ, слСдуСт ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ строгой спСцификации Ρ‚ΠΈΠΏΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, которая Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ повысила Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΌΠ΅ΠΆΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ³ΠΎ взаимодСйствия Π½Π° Π‘. ВсС Ρ‚Π°ΠΊΠΈΠ΅ ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΡ Π±Ρ‹Π»ΠΈ Π² 1989 Π³ΠΎΠ΄Ρƒ Π·Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½Ρ‹ Π² стандартС ANSI ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈ ΠΏΠΎΠ½Ρ‹Π½Π΅ опрСдСляСт язык Π‘.

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

ΠŸΠ΅Ρ€Π²Ρ‹Π΅ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ эти нСдостатки стали ΠΏΡ€Π΅Π΄ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ Π΅Ρ‰Π΅ Π² Π½Π°Ρ‡Π°Π»Π΅ 80-Ρ… Π³ΠΎΠ΄ΠΎΠ². Π£ΠΆΠ΅ Ρ‚ΠΎΠ³Π΄Π° Π‘ΡŒΠ΅Ρ€Π½ Бтрауструп Π² AT&T Bell Labs стал Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ языка Π‘ ΠΏΠΎΠ΄ условным Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ. Π‘Ρ‚ΠΈΠ»ΡŒ вСдСния Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²ΠΏΠΎΠ»Π½Π΅ соотвСтствовал Π΄ΡƒΡ…Ρƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ создавался ΠΈ сам язык Π‘, - Π² Π½Π΅Π³ΠΎ вводились Ρ‚Π΅ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹Π΅ возмоТности с Ρ†Π΅Π»ΡŒΡŽ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… людСй ΠΈ Π³Ρ€ΡƒΠΏΠΏ. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ коммСрчСский транслятор Π½ΠΎΠ²ΠΎΠ³ΠΎ языка, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠ΅Π³ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ C++ появился Π² 1983 Π³ΠΎΠ΄Ρƒ. Он прСдставлял собой прСпроцСссор, Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ€ΠΎΠ²Π°Π²ΡˆΠΈΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π² ΠΊΠΎΠ΄ Π½Π° Π‘. Однако фактичСским Ρ€ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ языка ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π²Ρ‹Ρ…ΠΎΠ΄ Π² 1985 Π³ΠΎΠ΄Ρƒ ΠΊΠ½ΠΈΠ³ΠΈ Бтрауструпа. ИмСнно с этого ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° C++ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Π½Π°Π±ΠΈΡ€Π°Ρ‚ΡŒ Π²ΡΠ΅ΠΌΠΈΡ€Π½ΡƒΡŽ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ.

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

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

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

ВсС это ΠΏΡ€ΠΈΠ²Π΅Π»ΠΎ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½Ρ‹ Π±Ρ‹Π»ΠΈ сами ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚Ρ‹ языковой сСмантики ΠΈ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚Ρ‹ΡΠΊΠΈΠ²Π°Ρ‚ΡŒ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ ΠΈΠ΄ΠΈΠΎΠΌΡ‹. Π’Π°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΌ этапС развития языка ΠΌΠ½ΠΎΠ³ΠΈΠ΅ создатСли Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ классов ΡΡ‚Ρ€Π΅ΠΌΠΈΠ»ΠΈΡΡŒ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π΅Π΄ΠΈΠ½ΡƒΡŽ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡŽ классов с ΠΎΠ±Ρ‰ΠΈΠΌ Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ классом Object. Π­Ρ‚Π° идСя Π±Ρ‹Π»Π° заимствована ΠΈΠ· Smalltalk - ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ извСстных ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… языков. Однако ΠΎΠ½Π° оказалась ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ нСТизнСспособной Π² C++ - Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΌΠ°Π½Π½Ρ‹Π΅ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ классов ΠΎΠΊΠ°Π·Ρ‹Π²Π°Π»ΠΈΡΡŒ Π½Π΅Π³ΠΈΠ±ΠΊΠΈΠΌΠΈ, Π° Ρ€Π°Π±ΠΎΡ‚Π° классов - Π½Π΅ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎΠΉ. Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ классов ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ, ΠΈΡ… ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π² исходных тСкстах.

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

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

И всС ΠΆΠ΅, нСсмотря Π½Π° пСрСчислСнныС нСдостатки ΠΈ Π΄Π°ΠΆΠ΅ Π½Π° Π½Π΅Π³ΠΎΡ‚ΠΎΠ²Π½ΠΎΡΡ‚ΡŒ стандарта языка (это послС пятнадцати с лишним Π»Π΅Ρ‚ использования!), C++ остаСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярных языков программирования. Π•Π³ΠΎ сила ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго Π² практичСски ΠΏΠΎΠ»Π½ΠΎΠΉ совмСстимости с языком Π‘. Благодаря этому программистам C++ доступны всС Π½Π°Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹Π΅ Π½Π° Π‘. ΠŸΡ€ΠΈ этом C++ Π΄Π°ΠΆΠ΅ Π±Π΅Π· использования классов привносит Π² Π‘ ряд Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π°ΠΆΠ½Ρ‹Ρ… Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… возмоТностСй ΠΈ удобств, Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΈΠΌ просто ΠΊΠ°ΠΊ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½Ρ‹ΠΌ Π‘.

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

Π’ свСтС всСго сказанного пСрспСктивы C++ Π½Π΅ выглядят ΠΌΡ€Π°Ρ‡Π½Ρ‹ΠΌΠΈ. Π₯отя ΠΈ монополия Π½Π° Ρ€Ρ‹Π½ΠΊΠ΅ языков программирования Π΅ΠΌΡƒ Π½Π΅ свСтит. ΠŸΠΎΠΆΠ°Π»ΡƒΠΉ, с ΡƒΠ²Π΅Ρ€Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Ρ€Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ-Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ этот язык Π½Π΅ ΠΏΠ΅Ρ€Π΅ΠΆΠΈΠ²Π΅Ρ‚. НСдаром, ΠΊΠΎΠ³Π΄Π° появилась Java, Π½Π° Π½Π΅Π΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠ»ΠΈ ΡΡ‚ΠΎΠ»ΡŒ ΠΏΡ€ΠΈΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅. Π―Π·Ρ‹ΠΊ, Π±Π»ΠΈΠ·ΠΊΠΈΠΉ ΠΏΠΎ синтаксису ΠΊ C++, Π° Π·Π½Π°Ρ‡ΠΈΡ‚, каТущийся Π·Π½Π°ΠΊΠΎΠΌΡ‹ΠΌ ΠΌΠ½ΠΎΠ³ΠΈΠΌ программистам, Π±Ρ‹Π» ΠΈΠ·Π±Π°Π²Π»Π΅Π½ ΠΎΡ‚ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²ΠΎΠΏΠΈΡŽΡ‰ΠΈΡ… нСдостатков C++, унаслСдованных ΠΈΠΌ ΠΈΠ· 70-Ρ… Π³ΠΎΠ΄ΠΎΠ². Однако Π½Π΅ ΠΏΠΎΡ…ΠΎΠΆΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Java ΡΠΏΡ€Π°Π²Π»ΡΠ»Π°ΡΡŒ с Π²ΠΎΠ·Π»Π°Π³Π°Π΅ΠΌΠΎΠΉ Π½Π° Π½Π΅Π΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Ρ€ΠΎΠ»ΡŒΡŽ.

Особая Ρ€ΠΎΠ»ΡŒ языков C/C++ Π² соврСмСнном ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ практичСски Π»ΠΈΡˆΠ°Π΅Ρ‚ смысла ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… адрСсов Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅, Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΏΠΎ Π½ΠΈΠΌ. Π’Π°ΠΊΠΈΡ… мСст просто слишком ΠΌΠ½ΠΎΠ³ΠΎ. Однако, Ссли интСрСсно ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠ΅ΠΉ C++, Ρ‚ΠΎ Π½Π°Ρ‡Π½ΠΈΡ‚Π΅ с нСбольшой ΡΡ‚Π°Ρ‚ΡŒΠΈ http://citforum.syzran.ru/programming/prg96/76.shtml .

АлСксандр Π‘Π΅Ρ€Π³Π΅Π΅Π², [email protected]
Π‘Ρ‚Π°Ρ‚ΡŒΡ ΠΈΠ· ΠΆΡƒΡ€Π½Π°Π»Π° BYTE/Россия, ΠœΠ°Ρ€Ρ‚ 2000

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

Листинг 1. Π‘

1 #include /* ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° */ 2 3 void main(void) 4 { 5 int М; /* Массив ΠΈΠ· 10 Ρ†Π΅Π»Ρ‹Ρ…, счСт с 0 */ 6 int N; 7 for (N=0; N<10; ++N) /* Π’Π²ΠΎΠ΄ΠΈΠΌ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 10 чисСл */ 8 if (EOF == scanf ("%d, M+N)) 9 break; /* Если ΠΊΠΎΠ½Π΅Ρ† Ρ„Π°ΠΉΠ»Π°, ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π΅ΠΌ Ρ†ΠΈΠΊΠ» */ 10 11 for (-N; N>=0; --N) /* ΠŸΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠΌ массив Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ */ 12 if (M[N]%2) /* порядкС ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π½Π΅Ρ‡Π΅Ρ‚Π½Ρ‹Π΅ */ 13 printf("%d\n", M[N]); 14 }

  • Π‘Ρ‚Ρ€ΠΎΠΊΠ° 3. Π’ C/C++ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ всСгда начинаСтся с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ main.
  • Π‘Ρ‚Ρ€ΠΎΠΊΠΈ 7 ΠΈ 11. Π’ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ Ρ†ΠΈΠΊΠ»Π° Ρ‡Π΅Ρ€Π΅Π· Ρ‚ΠΎΡ‡ΠΊΡƒ с запятой ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ установка, условиС продолТСния ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ пСрСсчСта ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Ρ†ΠΈΠΊΠ»Π°. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ++ ΠΈ -/- - ΠΈΠ·Π²Π΅ΡΡ‚Π½Π΅ΠΉΡˆΠΈΠ΅ ΠΈΠ· сокращСний языка Π‘, ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‰ΠΈΠ΅ ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚ ΠΈ Π΄Π΅ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΠ΅ Π΅Π΅ значСния Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ.
  • Π‘Ρ‚Ρ€ΠΎΠΊΠ° 8. Ѐункция scanf Π²Π²ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρƒ, Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡƒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ, значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, адрСса ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π·Π°Π΄Π°Π½Ρ‹ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ. Π—Π΄Π΅ΡΡŒ адрСс, ΠΊΡƒΠ΄Π° вводится Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, вычисляСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ адрСсной Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠΈ, ΠΊ адрСсу располоТСния массива М прибавляСтся смСщСниС Π½Π° N элСмСнтов. Π’ΠΎΡ‚ ΠΆΠ΅ эффСкт ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ, записав &M[N] .
  • Π‘Ρ‚Ρ€ΠΎΠΊΠ° 12. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ % вычисляСт остаток ΠΎΡ‚ дСлСния. УсловиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° if считаСтся Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹ΠΌ, Ссли числСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ выраТСния ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΎΡ‚ нуля.
  • Π‘Ρ‚Ρ€ΠΎΠΊΠ° 13. Ѐункция printf - ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ ΠΏΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρƒ дСйствуСт Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ scanf , Π½ΠΎ вмСсто адрСсов Π΅ΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ значСния, ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ Π²Ρ‹Π²ΠΎΠ΄Ρƒ.
1 #include 2 3 template class Array 4 { 5 public: Array (T Size=1) : M (new T), N(Size), n(0) {} 6 Array (void) { delete М;} 7 T Count (void) const { return n; } 8 T operator (int i) const { return M[i]; } 9 void Add (Π’ Data); 10 private: 11 T* М; // АдрСс распрСдСлСнной памяти 12 int N, n; // N - распрСдСлСно; n - использовано 13 }; 14 15 template void Array::Add(T Data) 16 { if (N-n) // Если использовано всС распрСдСлСнноС 17 { int* P = new T; // мСсто, распрСдСлим побольшС 18 for (int i=0; i A; // Массив Ρ†Π΅Π»Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° 28 while (1) // БСсконСчный Ρ†ΠΈΠΊΠ» 29 { int N; 30 cin >> N; // cin - стандартный ΠΏΠΎΡ‚ΠΎΠΊ Π²Π²ΠΎΠ΄Π° 31 if (cin.eof()) break; // Π’Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· Ρ†ΠΈΠΊΠ»Π° ΠΏΠΎ ΠΊΠΎΠ½Ρ†Ρƒ Ρ„Π°ΠΉΠ»Π° 32 A.Add(N); // ДобавляСм Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ число Π² массив 33 } 34 for (int N=A.Count()-1; N>=0; --N) // ΠŸΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠΌ ΠΏΠΎ массиву 35 if (A[N]%2) 36 cout <, ΠΈ освободит ΠΏΠ°ΠΌΡΡ‚ΡŒ
  • Π‘Ρ‚Ρ€ΠΎΠΊΠΈ 3-13. ΠžΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ Ρ‚Π΅ΠΌΠΏΠ»Π΅Ρ‚Π½Ρ‹ΠΉ класс Аrray с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ Π’ . Он прСдставляСт собой массив ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Ρ‚ΠΈΠΏΠ° Π’ . ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π² нашСй Π·Π°Π΄Π°Ρ‡Π΅ Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ нСобходимости ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π΅ΠΌΠΏΠ»Π΅Ρ‚Π½Ρ‹ΠΉ класс. Однако Π½Π°ΠΌ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ ΠΏΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Π½Π° C++ создаСтся полиморфная структура Π΄Π°Π½Π½Ρ‹Ρ…, способная Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π»ΡŽΠ±Ρ‹ΠΌ Ρ‚ΠΈΠΏΠΎΠΌ элСмСнтов.
  • Π‘Ρ‚Ρ€ΠΎΠΊΠ° 5. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ класса. Π’ Π½Π΅ΠΌ инициализируСтся прСдставлСниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. НапримСр, Π² ΠΏΠΎΠ»Π΅ М заносится адрСс Π±Π»ΠΎΠΊΠ° памяти, Π·Π°ΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ new T .
  • Π‘Ρ‚Ρ€ΠΎΠΊΠ° 8. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ . Ѐункция operator Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ справа ΠΎΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° класса Array .
  • Π‘Ρ‚Ρ€ΠΎΠΊΠ° 9. Π­Ρ‚Π° функция основная Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Она добавляСт элСмСнты Π² массив, Ρ€Π°ΡΡˆΠΈΡ€ΡΡ Π΅Π³ΠΎ ΠΏΡ€ΠΈ нСобходимости. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½Π° слоТнСС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ…, Π΅Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ вынСсСно ΠΈΠ· описания класса. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ, описанныС Π² Ρ‚Π΅Π»Π΅ класса, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ Π² C++ Π½Π΅ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ, Π° inline-подстановкой. Π­Ρ‚ΠΎ ускоряСт Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, хотя ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Π΅Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€.
  • Π‘Ρ‚Ρ€ΠΎΠΊΠΈ 15-24. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ АrrΠ°Ρƒ::Add(T) (ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€ΠΎΡ‡ΠΈΠΌ, это Π΅Π΅ ΠΏΠΎΠ»Π½ΠΎΠ΅ имя).
  • Π‘Ρ‚Ρ€ΠΎΠΊΠ° 27. Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° Array . Π’Π΅ΠΌΠΏΠ»Π΅Ρ‚ Аггау парамСтризируСтся Ρ‚ΠΈΠΏΠΎΠΌ int .