8-900-374-94-44
[email protected]
Slide Image
МСню

C Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ – ΠžΠ±Π»Π°ΡΡ‚ΡŒ примСнСния C, C++, C#? β€” Toster.ru

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

C++ | Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

Π―Π·Ρ‹ΠΊ программирования 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 ΠΈ Ρ‚.Π΄.

metanit.com

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ, Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, характСристика C/C++. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° C/C++

C (Π‘ΠΈ) — ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹ΠΉ язык программирования, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ Π² Π½Π°Ρ‡Π°Π»Π΅ 1970-Ρ… Π³ΠΎΠ΄ΠΎΠ² сотрудниками Bell Labs КСном Вомпсоном (Kenneth Thompson) ΠΈ ДСннисом Π ΠΈΡ‚Ρ‡ΠΈ (Dennis MacAlistair Ritchie) ΠΊΠ°ΠΊ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ языка B.

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

C++ (Π‘ΠΈ++, Π‘ΠΈ плюс плюс) — язык программирования высокого уровня, созданный Π² 1985 Π‘ΡŒΡ‘Ρ€Π½ΠΎΠΌ Бтрауструпом (Bjarne Stroustrup) ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ориСнтированная ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²Π΅Π½Π½Π°Ρ вСрсия популярного языка C. Одним ΠΈΠ· ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±Ρ‹Π»ΠΎ сохранСниС совмСстимости с C. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, C++ Π½Π΅ являСтся Π² строгом смыслС надмноТСством Π‘ΠΈ; мноТСство ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ компиляторами Π‘ΠΈ, Ρ‚Π°ΠΊ ΠΈ компиляторами C++, довольно Π²Π΅Π»ΠΈΠΊΠΎ, Π½ΠΎ Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ всС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° C.

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

Π’ связи с успСхом языка C++ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ†ΠΈΠΈ стали обильно Π²Ρ‹ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ свои компиляторы ΠΈ срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΊΠ°ΠΊ бСсплатныС, Ρ‚Π°ΠΊ ΠΈ коммСрчСскиС ΠΈ для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ. НапримСр, Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ x86 это (GCC, Borland C++ Builder, Microsoft Visual C++, Bloodshed Dev-C++, Intel C++ Compiler, Borland Turbo C/C++ ΠΈ Ρ‚.Π΄)

C++ ΠΎΠΊΠ°Π·Π°Π» ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ влияниС Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ языки программирования, Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π½Π° Java ΠΈ C#. Π’Π°ΠΊΠΆΠ΅ стоит ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² послСдниС Π³ΠΎΠ΄Ρ‹ C++ сдаСт свои ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ Π² ΠΏΠΎΠ»ΡŒΠ·Ρƒ этих языков.

softcreate.narod.ru

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° C++ ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ языка для обучСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ / Habr

ВсСм Π΄ΠΎΠ±Ρ€ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ суток!

Π­Ρ‚ΠΎ ΡΡ‚Π°Ρ‚ΡŒΡ ΠΎ Ρ‚ΠΎΠΌ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΆΠ΅ всС-Ρ‚Π°ΠΊΠΈ стоит Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ C++ Π² качСствС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ языка программирования для обучСния студСнтов, ΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ… прСподавания Π² Π’Π£Π—Π°Ρ…. Π§Π°ΡΡ‚ΡŒ суТдСния, ΠΊΠ°ΡΠ°ΡŽΡ‰Π΅Π³ΠΎΡΡ процСсса обучСния, основываСтся Π½Π° Π»ΠΈΡ‡Π½ΠΎΠΌ ΠΎΠΏΡ‹Ρ‚Π΅ прСподавания (Ρ‚Ρ€ΠΈ Π³ΠΎΠ΄Π°, Π²ΠΎ врСмя ΡƒΡ‡Ρ‘Π±Ρ‹ Π² аспирантурС), Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π° ΠΎΠ±Ρ‰Π΅Π½ΠΈΠΈ с прСподаватСлями ΠΈ студСнтами.

Π Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ прСимущСства языка программирования C++ ΠΈΠΌΠ΅Π½Π½ΠΎ для обучСния ΠΈ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Π»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ понимания основных ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΉ. ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚Ρ‹ Π½Π° Ρ€ΠΎΠ»ΡŒ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ языка (Pascal/Python/C#/Java) Π½Π΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ, Π΄Π°Π±Ρ‹ Π½Π΅ Ρ€Π°Π·ΠΆΠΈΠ³Π°Ρ‚ΡŒ Ρ…ΠΎΠ»ΠΈΠ²Π°Ρ€. Π•Ρ‰Π΅ Ρ€Π°Π· ΠΎΡ‚ΠΌΠ΅Ρ‡Ρƒ: Π½Π΅ для ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ Π½Π΅ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΡΡƒΠ±ΡŠΠ΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ критСрия, ΠΊΠ°ΠΊ удобство.
Написано ΠΏΠΎΠ΄ Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΎΡ‚ΠΊΡ€ΠΎΠ²Π΅Π½Π½ΠΎ Ρ€Π΅ΠΊΠ»Π°ΠΌΠ½ΠΎΠ³ΠΎ поста Β«Delphi XE5 ΠΊΠ°ΠΊ основа для обучСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽΒ» (Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ написания, доступна Ρ‚ΠΎΠ»ΡŒΠΊΠΎ вСрсия Β«ΠΎΡ‚ Π³ΡƒΠ³Π»Π°Β»).

0 Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

Для Π½Π°Ρ‡Π°Π»Π°, Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π±Ρ‹ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ для студСнтов Π½Π΅ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ вопрос Π²Ρ‹Π±ΠΎΡ€Π° ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ языка программирования Π½Π΅ рассматриваСтся. ΠžΡΠ½ΠΎΠ²Ρ‹ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ (Ссли ΠΎΠ½ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹) ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ Ρ…ΠΎΡ‚ΡŒ Π½Π° Python, Ρ…ΠΎΡ‚ΡŒ Π½Π° C++ (Java, C#, Pascal ΠΈ Ρ‚.Π΄.). Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС, Ρ‡Π΅ΠΌ ΠΏΡ€ΠΎΡ‰Π΅ язык, Ρ‚Π΅ΠΌ ΠΎΠ½ Π»ΡƒΡ‡ΡˆΠ΅: Ρƒ людСй Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ…ΠΎΡ‚ΡŒ ΠΊΠ°ΠΊΡƒΡŽ-Ρ‚ΠΎ ΠΊΡƒΠ»ΡŒΡ‚ΡƒΡ€Ρƒ алгоритмичСского ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΡ ΠΈ понимания Π±Π°Π·ΠΎΠ²Ρ‹Ρ… конструкций. Π‘Ρ‚ΡƒΠ΄Π΅Π½Ρ‚Π°ΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ (ΡŽΡ€ΠΈΠ΄ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅, экономичСскиС, Π³ΡƒΠΌΠ°Π½ΠΈΡ‚Π°Ρ€Π½Ρ‹Π΅), ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ ЯП совсСм Π½Π΅ трСбуСтся.
НСсмотря Π½Π° всю ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ написанного Π²Ρ‹ΡˆΠ΅, ΠΌΠ½ΠΎΠ³ΠΈΠΌ студСнтам-экономистам ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ курса ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°ΡŽΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Pascal Π½Π° практичСских занятиях ΠΏΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π‘Ρ‚ΡƒΠ΄Π΅Π½Ρ‚Π°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅Ρ‰Ρ‘ Ρ‚ΠΎΠ»ΠΊΠΎΠΌ Π½Π΅ ΡƒΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с MS Word. Польза ΠΎΡ‚ Ρ‚Π°ΠΊΠΈΡ… занятий вСсьма ΠΈ вСсьма ΡΠΎΠΌΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°. Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, студСнтов-ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠ°Ρ€Ρƒ Π»Π΅Ρ‚ ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° C++/C#/Java… Π½ΠΎ Π·Π°Ρ‡Π΅ΠΌ? Π“ΠΎΡ€Π°Π·Π΄ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Π΅Π΅ для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ примСнСния своих Π·Π½Π°Π½ΠΈΠΉ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π²Ρ€ΠΎΠ΄Π΅ Mathcad, Simulink, Surfer ΠΈ Ρ‚.Π΄.
Учитывая Π²Ρ‹ΡˆΠ΅ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ΅, рассмотрим процСсс Π²Ρ‹Π±ΠΎΡ€Π° ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ языка ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ для студСнтов ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Β«ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Π°Ρ инТСнСрия») ΠΈ ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹Ρ… ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ с ΡƒΠΊΠ»ΠΎΠ½ΠΎΠΌ Π² сторону IT (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Β«ΠŸΡ€ΠΈΠΊΠ»Π°Π΄Π½Π°Ρ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°Β»). Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΡƒΡ‡Π΅Π±Π½Ρ‹ΠΉ ΠΏΠ»Π°Π½ Ρ‚Π°ΠΊΠΈΡ… ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ достаточноС количСство Π»Π΅ΠΊΡ†ΠΈΠΉ ΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊ (Ρ‚.ΠΊ. рассматриваСтся ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ язык, учитываСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ курс): для Π΄Π²ΡƒΡ… связанных дисциплин (ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ° ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅) ΠΎΠΊΠΎΠ»ΠΎ 230 часов, Π² зависимости ΠΎΡ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ заинтСрСсованности ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ склада ΡƒΠΌΠ° Ρƒ студСнтов. Π’Π°ΠΊΠΈΠ΅ студСнты Ρ‡Π°Ρ‰Π΅ всСго ΡƒΠΆΠ΅ ΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°ΠΆΠ΅ ΠΈ написали сайт/ΠΈΠ³Ρ€ΡƒΡˆΠΊΡƒ. Π”Π²Π΅ эти ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹, Π² совокупности, Π΄Π°ΡŽΡ‚ Π½Π΅ΠΏΠ»ΠΎΡ…ΡƒΡŽ Π±Π°Π·Ρƒ для Π½Π°Ρ‡Π°Π»Π° обучСния ΠΈ ΠΏΠΎΠ½ΠΈΠΆΠ°ΡŽΡ‚ ΠΏΠΎΡ€ΠΎΠ³ вхоТдСния для обучСния языку. К Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅, выпускникам рассматриваСмых ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ прСдстоит Π² дальнСйшСм Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² индустрии Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ПО. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π²Ρ‹Π±ΠΎΡ€ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ языка для Π½ΠΈΡ… особо Π²Π°ΠΆΠ΅Π½.
1 ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΆΠ΅ C++?

На ΠΏΠ΅Ρ€Π²ΠΎΠΌ курсС закладываСтся базис для дальнСйшСго обучСния ΠΈ формируСтся ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ студСнта ΠΊ Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ΅ΠΌΡƒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΡŽ Π·Π½Π°Π½ΠΈΠΉ. Π―Π·Ρ‹ΠΊ программирования ΠΈΠ³Ρ€Π°Π΅Ρ‚ здСсь Π½Π΅ послСднюю Ρ€ΠΎΠ»ΡŒ.
Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ C++ Π² качСствС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ языка программирования сущСствуСт Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹:
  1. ΠšΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ язык со статичСской Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ.
  2. Π‘ΠΎΡ‡Π΅Ρ‚Π°Π½ΠΈΠ΅ высокоуровнСвых ΠΈ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Ρ… срСдств.
  3. РСализация ООП.
  4. STL.

Рассмотрим Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ.

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€. Π’ΡƒΡ‚ C++ прСдстаёт Π²ΠΎ всСй красС. ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ компиляторов, ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, этапы сборки программы… Π”Π°, ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² простом тСкстовом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ Π±Π΅Π· подсвСтки синтаксиса ΠΈ Π°Π²Ρ‚ΠΎΠΊΠΎΠΌΠΏΠ»ΠΈΡ‚Π°, Π½Π°ΠΉΡ‚ΠΈ Ρ‡Π΅ΠΌ ΠΈ ΠΊΠ°ΠΊ Π΅Ρ‘ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ Ρƒ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ всё устроСно:

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

Π‘ΡƒΠ΄ΡƒΡ‰ΠΈΠΉ спСциалист осознаСт, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ сам ΠΏΠΎ сСбС Π½Π΅ запускаСтся (Π² дальнСйшСм ΠΎΠ½ Π±Ρ‹Ρ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈ заинтСрСсуСтся, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Python ΠΈΠ»ΠΈ JIT-компиляция). Π§Π΅Π»ΠΎΠ²Π΅ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ сСбС вопросы: «А ΠΏΠΎΡ‡Π΅ΠΌΡƒ?Β», «А Π² Ρ‡Ρ‘ΠΌ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅?Β», «Как?Β». НС Π±ΡƒΠ΄Π΅Ρ‚ иллюзий ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρƒ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ всё Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΈΡŽ Π΄Π²ΡƒΡ… Π²ΠΎΠ»ΡˆΠ΅Π±Π½Ρ‹Ρ… ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΈΠ»ΠΈ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС. Π‘Ρ‚ΡƒΠ΄Π΅Π½Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ процСсс сборки ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΈ Ρ‡Ρ‚ΠΎ исходный ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½ сторонними ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ. Π’ Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ, ΠΏΡ€ΠΈ использовании IDE, Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ это всСго лишь ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ комплСкс ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΉ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Ρ€ΡƒΡ‚ΠΈΠ½Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈ Π² случаС нСдостаточной гибкости ΠΎΡ‚ Π½Π΅Ρ‘ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΈΠ»ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ.

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

ВысокоуровнСвыС ΠΈ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Π΅ срСдства. ИспользованиС Ρ‚Π°ΠΊΠΈΡ… срСдств, ΠΊΠ°ΠΊ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ ΠΈ динамичСскоС Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ памяти, позволяСт ΠΏΠΎΠ½ΡΡ‚ΡŒ (ΠΈΠ»ΠΈ Π² дальнСйшСм способствуСт пониманию), Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ стэк, ΠΊΡƒΡ‡Π°, стэк Π²Ρ‹Π·ΠΎΠ²ΠΎΠ², раскрутка стэка ΠΈ Ρ‚.Π΄. Помимо этого, Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ закрСпляСтся ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ адрСсов ΠΈ адрСсной Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠΈ. На ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… дСмонстрируСтся, Ρ‡Ρ‚ΠΎ ΠΏΠ°ΠΌΡΡ‚ΡŒ Π½Π°Π΄ΠΎ Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ, ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Ρ‚ΡŒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° Π½Π΅ бСсконСчная, Ρ‡Ρ‚ΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΡƒΡ‚Π΅Ρ‡ΠΊΠΈ памяти. Π’ Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ, ΠΏΡ€ΠΈ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ языков с GC ΠΏΡ€ΠΎΡ‰Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΆΠ΅ это Ρ‚Π°ΠΊΠΎΠ΅.
ΠžΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ стоит ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ простой ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠΎ ссылкС, Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ, ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŽ ΠΈ пСрСнос ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ измСняСмыС ΠΈ Π½Π΅ измСняСмыС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹. Π’ дальнСйшСм Π΄Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ ΠΈ ΠΏΡ€ΠΈ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… языков. Π‘Ρ‚ΡƒΠ΄Π΅Π½Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² языкС N пСрСдаётся ΠΏΠΎ ссылкС, ΠΈ Ссли Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-Ρ‡Π»Π΅Π½Π΅, Ρ‚ΠΎ ΠΎΠ½ΠΎ измСнится Π²Π΅Π·Π΄Π΅.

РСализация ООП. Π­Ρ‚ΠΎ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ чистая рСализация ООП Π±Π΅Π· всякого синтаксичСского сахара (ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… языков). Π§Ρ‘Ρ‚ΠΊΠΎ Ρ€Π°Π·Π³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Π΅ ΡƒΡ€ΠΎΠ²Π½ΠΈ доступа ΠΊ Ρ‡Π»Π΅Π½Π°ΠΌ класса, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ мноТСствСнного наслСдования ΠΈ динамичСский ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ Π΄Π°ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ быстро ΡƒΡΠ²ΠΎΠΈΡ‚ΡŒ основныС ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ ООП (абстракция, наслСдованиС, инкапсуляция ΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌ). Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ ΠΈ динамичСскоС Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ памяти ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ наглядно ΠΏΠΎΠ½ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ Π²Π°ΠΆΠ½Ρ‹Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹, ΠΊΠ°ΠΊ upcasting ΠΈ downcasting. Π’ дальнСйшСм, ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°ΡΡΡŒ Π½Π° этих знаниях, Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ вСсь синтаксичСский сахар Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… языках. ΠΠ΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ контроля рСсурсов (Π² Ρ‚ΠΎΠΌ числС ΠΈ Β«ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Ρ‚Ρ€Ρ‘Ρ…Β» ΠΈΠ»ΠΈ ΡƒΠΆΠ΅ Β«ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ пяти», с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ C++11), Π·Π°Ρ…Π²Π°Ρ‚ ΠΈΡ… Π² конструкторС ΠΈ освобоТдСниС Π² дСструкторС Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΏΠΎΡΠΎΠ±ΡΡ‚Π²ΡƒΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠΌΡƒ пониманию ООП.
Π‘Ρ‚ΠΎΠΈΡ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ Π²Π°ΠΆΠ½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΊΠ°ΠΊ Π½Π΅ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ООП. Π’ΠΎ Π΅ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ примСняСтся Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° это ΡƒΠ΄ΠΎΠ±Π½ΠΎ, ΠΈ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΌΠ΅ΡˆΠΈΠ²Π°Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ. Π­Ρ‚ΠΎ способствуСт Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ понимания Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ срСдства Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚ΡΡ исходя ΠΈΠ· Π·Π°Π΄Π°Ρ‡ΠΈ.

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

2 НСмного ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ… обучСния

ΠŸΡ€ΠΎΡ†Π΅ΡΡ обучСния, ΠΏΠΎΠΆΠ°Π»ΡƒΠΉ, ΠΎΠ΄Π½Π° ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ сущСствСнных ΠΏΡ€Π΅Π³Ρ€Π°Π΄, для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ всС Ρ‚ΠΎ, ΠΎ Ρ‡Ρ‘ΠΌ написано Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΠΏΡƒΠ½ΠΊΡ‚Π΅. ВСроятно, этот вопрос Π½Π΅ касаСтся Ρ‚ΠΎΠΏΠΎΠ²Ρ‹Ρ… IT-Π²ΡƒΠ·ΠΎΠ², Π½ΠΎ Ссли Π²Π·ΡΡ‚ΡŒ рядовыС ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ учрСТдСния, Ρ‚ΠΎ ощущаСтся Π΄Π΅Ρ„ΠΈΡ†ΠΈΡ‚ ΠΊΠ²Π°Π»ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΊΠ°Π΄Ρ€ΠΎΠ² ΠΈ слабая мотивация студСнтов. Для большСй части практичСских дисциплин Ρ€Π΅Π΄ΠΊΠΎ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°ΡŽΡ‚ΡΡ спСциалисты, Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠ΅ΡΡ нСпосрСдствСнно Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ПО. НапримСр, Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ примСнял STL Π² Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…, вряд Π»ΠΈ смоТСт ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ это Π΄Π΅Π»Π°Ρ‚ΡŒ, ΠΈ Π³Π»Π°Π²Π½ΠΎΠ΅ Π·Π°Ρ‡Π΅ΠΌ. Π’Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°Ρ‚Π΅Π»ΡŒ, искрСннС ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‰ΠΈΠΉ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Delphi с Ρ„ΠΎΡ€ΠΌΠΎΡ‡ΠΊΠ°ΠΌΠΈ ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ самоС настоящСС ООП, учитывая, Ρ‡Ρ‚ΠΎ вСсь ΠΊΠΎΠ΄ (Π±Π΅Π· Π½Π°ΠΌΡ‘ΠΊΠ° Π½Π° собствСнныС классы, Π°Π±ΡΡ‚Ρ€Π°ΠΊΡ†ΠΈΡŽ ΠΈ ΠΈΠ½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡŽ) ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ наТатия Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ с ΠΎΡ‡Π΅Π½ΡŒ понятным ΠΈΠΌΠ΅Π½Π΅ΠΌ Β«Button1Β», Π½Π΅ способствуСт процСссу обучСния. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π΅ΡΡ‚ΡŒ ΠΈ со стороны студСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚ΠΎΠ»ΠΊΠΎΠΌ Π½Π΅ поняли, ΠΊΡƒΠ΄Π° ΠΈ Π·Π°Ρ‡Π΅ΠΌ ΠΎΠ½ΠΈ поступили. МногиС студСнты, Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΌΠΎΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ ΠΊ Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ΅ΠΌΡƒ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΡŽ ΠΈ пониманию, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈ ΠΊ ΡΠ°ΠΌΠΎΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡŽ. НС смотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ студСнты ΠΈ ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°Ρ‚Π΅Π»ΠΈ прСкрасно Π΄ΠΎΠΏΠΎΠ»Π½ΡΡŽΡ‚ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π°, Π² ΠΊΠΎΠ½Ρ†Π΅ обучСния Π½Π΅ получится спСциалист, ΠΏΡ€Π΅Ρ‚Π΅Π½Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π½Π° junior-вакансию.
3 Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

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

habr.com

11. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹ c#. Бинтаксис. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ситуации использования классов ΠΈ структур. ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΡ Π² c#. НазначСниС. Бинтаксис.

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° — это частный случай класса. МоТно ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ:

β€’ Ссли Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ отнСсти класс ΠΊ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΠΎΠΌΡƒ Ρ‚ΠΈΠΏΡƒ, Π΄Π΅Π»Π°ΠΉΡ‚Π΅ Π΅Π³ΠΎ структурой;

β€’ Ссли Ρƒ класса число ΠΏΠΎΠ»Π΅ΠΉ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅Π²Π΅Π»ΠΈΠΊΠΎ, Π° число Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Π΅Π»ΠΈΠΊΠΎ, Π΄Π΅Π»Π°ΠΉΡ‚Π΅ Π΅Π³ΠΎ структурой. Π’ этом случаС ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² стСкС, Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒΡΡ лишниС ссылки, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹;

β€’ Π² ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… случаях ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ настоящиС классы.

Бинтаксис объявлСния структуры Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ синтаксису объявлСния класса:

[Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹][ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹]struct имя_структуры[:список_интСрфСйсов]

{Ρ‚Π΅Π»ΠΎ_структуры}

ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠ΅ — это частный случай класса, класс, Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ Π±Π΅Π· собствСнных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Π΅Ρ‚ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ΅ мноТСство Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ класса пСрСчислСниС. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρƒ пСрСчислСний Π½Π΅Ρ‚ собствСнных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², Ρ‚ΠΎ синтаксис объявлСния этого класса упрощаСтся — остаСтся ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΈ Ρ‚Π΅Π»ΠΎ класса, содСрТащСС список Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Π’ΠΎΡ‚ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ синтаксиса пСрСчислСний:

[Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹][ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹]enum имя_пСрСчислСния[:Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс]

{список_Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ…_Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ}

12. ΠšΠ»Π°ΡΡΡ‹ Π² c#. Роль классов Π² ΠΎΠΎΠΏ. Бинтаксис классов Π² c#: ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ…, абстрактных, ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Ρ…. Поля ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ классов. ΠžΠ±Π»Π°ΡΡ‚ΠΈ видимости.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ построСно Π½Π° классах. Π›ΡŽΠ±ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΡƒΡŽ систСму, Π²Ρ‹ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠΌ стилС, ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ классов, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½Ρ‹Ρ… Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹, пространства ΠΈΠΌΠ΅Π½, Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΠΊΠ°ΠΊ это дСлаСтся ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π² Visual Studio .Net.

Π£ класса Π΄Π²Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ€ΠΎΠ»ΠΈ: модуля ΠΈ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ…. Класс — это ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, архитСктурная Π΅Π΄ΠΈΠ½ΠΈΡ†Π° построСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ систСмы. ΠœΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ построСния — основноС свойство ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… систСм. Π’ ООП программная систСма, строящаяся ΠΏΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠΌΡƒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ, состоит ΠΈΠ· классов, ΡΠ²Π»ΡΡŽΡ‰ΠΈΡ…ΡΡ основным Π²ΠΈΠ΄ΠΎΠΌ модуля.

Вторая Ρ€ΠΎΠ»ΡŒ класса Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π²Π°ΠΆΠ½Π°. Класс — это Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…, Π·Π°Π΄Π°ΡŽΡ‰ΠΈΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ абстракции Π΄Π°Π½Π½Ρ‹Ρ…, Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½ΠΎΠΉ для Π·Π°Π΄Π°Ρ‡ΠΈ, Π² интСрСсах ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ создаСтся программная систСма. Π‘ этих ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ классы — Π½Π΅ просто ΠΊΠΈΡ€ΠΏΠΈΡ‡ΠΈΠΊΠΈ, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… строится систСма. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΈΡ€ΠΏΠΈΡ‡ΠΈΠΊ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈΠΌΠ΅Π΅Ρ‚ Π²Π°ΠΆΠ½ΡƒΡŽ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Π½Π°Ρ‡ΠΈΠ½ΠΊΡƒ.

НачнСм с синтаксиса описания класса:

[Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹][ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹]class имя_класса[:список_Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ]

{Ρ‚Π΅Π»ΠΎ_класса}

КаТдоС ΠΏΠΎΠ»Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ доступа, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΉ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ: public, private, protected, internal. Атрибутом доступа ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ являСтся Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ private. Если поля доступны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² класса, Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ доступа private, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ. Π’Π°ΠΊΠΈΠ΅ поля ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌΠΈ, Π½ΠΎ часто ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π½ΠΈΡ… Π±Ρ‹Π»ΠΈ доступны Π² Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΎΠΌ контСкстС. Если Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ поля класса A Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ доступны для ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² класса B, ΡΠ²Π»ΡΡŽΡ‰Π΅Π³ΠΎΡΡ ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠΌ класса A, Ρ‚ΠΎ эти поля слСдуСт ΡΠ½Π°Π±Π΄ΠΈΡ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠΌ protected. Π’Π°ΠΊΠΈΠ΅ поля Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹ΠΌΠΈ. Если Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ поля Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ доступны для ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² классов B1, B2 ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅, друТСствСнных ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ классу A, Ρ‚ΠΎ эти поля слСдуСт ΡΠ½Π°Π±Π΄ΠΈΡ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠΌ internal, Π° всС друТСствСнныС классы B ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ (assembly). Π’Π°ΠΊΠΈΠ΅ поля Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ друТСствСнными. НаконСц, Ссли Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ поля Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ доступны для ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² любого класса B, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ доступСн сам класс A, Ρ‚ΠΎ эти поля слСдуСт ΡΠ½Π°Π±Π΄ΠΈΡ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠΌ public. Π’Π°ΠΊΠΈΠ΅ поля Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ общСдоступными ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌΠΈ.

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ класса синтаксичСски ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°ΠΌΠΈ ΠΈ функциями языка.

studfiles.net

Π“Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π‘/Π‘++ | Joomlasecret.ru

Π‘ β€”ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ, ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹ΠΉ, стандартизированный язык программирования.Β C++ β€” это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык программирования, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ стандартам ANSI ΠΈ ISO. Он характСризуСтся Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈ ΠΎΠ±ΡˆΠΈΡ€Π½Ρ‹ΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. C++ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ Π½Π° основС языка Π‘.

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

Иногда язык Π‘ΠΈ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ «ассСмблСром высокого уровня». Π˜ΠΌΠ΅Π΅Ρ‚ΡΡ Π² Π²ΠΈΠ΄Ρƒ Π΅Π³ΠΎ максимальная ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΊ АссСмблСру. Но АссСмблСры для Ρ€Π°Π·Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ² спСцифичны для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹, ОБ ΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° синтаксиса языка. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΈ ΠΎΡ‚ Π½ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π° Π‘ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ скомпилирована (часто Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ) практичСски для любой ОБ ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹.Β ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, написанныС Π½Π° Π‘, ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ высоким быстродСйствиСм. БыстрСС Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ написаны ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π½Π° АссСмблСрС.

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

Π’Π°ΠΊ Π³Π΄Π΅ ΠΆΠ΅ примСняСтся Π‘++? ΠžΠ±Π»Π°ΡΡ‚ΡŒ Π΅Π³ΠΎ примСнСния Π½Π΅ΠΈΠΌΠΎΠ²Π΅Ρ€Π½ΠΎ ΡˆΠΈΡ€ΠΎΠΊΠ°. Π”Π°Π²Π°ΠΉΡ‚Π΅ пСрСчислим Ρ‚ΠΎΠ»ΡŒΠΊΠΎ нСсколько сфСр использования этого языка: Π² систСмном ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ (ΠΏΡ€Π΅Π΅ΠΌΠ½ΠΈΠΊ языка Π‘ΠΈ). На Π‘ΠΈ написаны ядра Windows ΠΈ UNIX. На Π½Π΅ΠΌ ΠΆΠ΅ написан WinAPI. Π―Π·Ρ‹ΠΊ программирования примСняСтся для создания ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ: конструкторских, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, БАПР «Компас»; тСкстовых Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ²; бухгалтСрских (1Π‘) ΠΈ Ρ‚.Π΄. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, C++ примСняСтся для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ языков программирования ΠΈ ΠΈΡ… ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² устройств, создания Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π²Π΅Π±-сСрвСров (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, nginx), создании ΠΈΠ³Ρ€ ΠΈ всСвозмоТных Ρ€Π°Π·Π²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, для обучСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ², Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, язык Π‘-51 для ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° MCS-51 ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°ΠΌΠΈ – достаточно ΠΎΠ±ΡˆΠΈΡ€Π½Π°Ρ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ примСнСния. Π―Π·Ρ‹ΠΊ программирования Π‘-51 ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для написания ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ сравнима с написанными Π½Π° языкС АссСмблСр.

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


joomlasecret.ru

c++ — НазначСниС указатСля Π½Π° Π‘++

Π― Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ ΠΎΠ±Ρ‰Π΅ΠΉ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΎΠΉ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ я использовал, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ, ΠΊΠΎΠ³Π΄Π° я Π½Π°Ρ‡ΠΈΠ½Π°ΡŽ. Если Π²Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅ Π΅Π³ΠΎ ΠΊ своСй ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΎΡ‚Π²Π΅Ρ‚ ΠΊΠ°ΠΊ простой, ΠΊΠ°ΠΊ дСнь.

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

+---+---+---+---+---+--
|   |   |   |   |   | ...
+---+---+---+---+---+--
100  101 102 103 104  ...

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚, сдСлайтС Π²ΠΈΠ΄, Ρ‡Ρ‚ΠΎ int — ΠΎΠ΄ΠΈΠ½ Π±Π°ΠΉΡ‚. Π’Ρ‹ Π²ΠΎΡΡŒΠΌΠΈΠ±ΠΈΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ int a Π² ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΠΎΠ»Π΅ΠΉ. НомСр ΠΏΠΎΠ΄ ΠΏΠΎΠ»Π΅ΠΌ — Π΅Π³ΠΎ адрСс. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π±Π»ΠΎΠΊ, содСрТащий int *b = &a. int *b Ρ‚Π°ΠΊΠΆΠ΅ являСтся ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, хранящСйся Π³Π΄Π΅-Ρ‚ΠΎ Π² памяти, ΠΈ это ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ, содСрТащий &a, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ произносится ΠΊΠ°ΠΊ «Π°Π΄Ρ€Π΅Ρ».

int  a = 5;
int *b = &a;
  a       b 
+---+---+---+---+---+--
| 5 |   |100|   |   | ...
+---+---+---+---+---+--
 100 101 102 103 104  ...

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту модСль для Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π»ΡŽΠ±Ρ‹ΠΌΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ комбинациями Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅. Π­Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½ΠΈΠ΅ (ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ, ΠΊΠ°ΠΊ говорят слова ΠΏΠ΅Π΄Π°Π½Ρ‚Ρ‹, ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ являСтся адрСсом, Π° ΠΏΠ°ΠΌΡΡ‚ΡŒ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Π°, Π° Ρ‚Π°ΠΌ стСк, ΠΊΡƒΡ‡Π° ΠΈ рСгистры ΠΈ Ρ‚.Π΄.), Но это довольно Ρ…ΠΎΡ€ΠΎΡˆΠ°Ρ аналогия для 99% ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ² ΠΈ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ².

Π˜Ρ‚Π°ΠΊ, Π² вашСм случаС

int x = 35;
int y = 46;
  x   y 
+---+---+---+---+---+--
| 35| 46|   |   |   | ...
+---+---+---+---+---+--
 100 101 102 103 104  ...
int *p = &x;
int *q = &y;
  x   y   p   q
+---+---+---+---+---+--
| 35| 46|100|101|   | ...
+---+---+---+---+---+--
 100 101 102 103 104  ...
p = q;
  x   y   p   q
+---+---+---+---+---+--
| 35| 46|101|101|   | ...
+---+---+---+---+---+--
 100 101 102 103 104  ...
*p = 90;
  x   y   p   q
+---+---+---+---+---+--
| 35| 90|101|101|   | ...
+---+---+---+---+---+--
 100 101 102 103 104  ...

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ *p? Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ *q?

qaru.site

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *