мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ

Π‘ΠΊΠΎΡ‚Ρ‚ ΠœΠ°ΠΉΠ΅Ρ€Ρ: Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ использованиС C++. 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ

Π—Π΄Π΅ΡΡŒ Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π‘ΠΊΠΎΡ‚Ρ‚ ΠœΠ°ΠΉΠ΅Ρ€Ρ: Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ использованиС C++. 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΒ» вСсь тСкст элСктронной ΠΊΠ½ΠΈΠ³ΠΈ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ бСсплатно (Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ ΠΏΠΎΠ»Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ). Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях присутствуСт ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ содСрТаниС. Π“ΠΎΡ€ΠΎΠ΄: Москва, Π³ΠΎΠ΄ выпуска: 2006, ISBN: 5-94074-304-8, ΠΈΠ·Π΄Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ: Array Π›ΠΈΡ‚Π°Π³Π΅Π½Ρ‚ Β«Π”ΠœΠšΒ», катСгория: ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ / Π½Π° русском языкС. ОписаниС произвСдСния, (прСдисловиС) Π° Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΎΡ‚Π·Ρ‹Π²Ρ‹ посСтитСлСй доступны Π½Π° ΠΏΠΎΡ€Ρ‚Π°Π»Π΅. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Β«Π›ΠΈΠ± ΠšΠ°Ρ‚Β» β€” LibCat.ru создана для Π»ΡŽΠ±ΠΈΡ‚Π΅Π»Π΅ΠΉ ΠΏΠΎΠ»ΠΈΡΡ‚Π°Ρ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΡƒΡŽ ΠΊΠ½ΠΈΠΆΠΊΡƒ ΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ Π²Ρ‹Π±ΠΎΡ€ ΠΆΠ°Π½Ρ€ΠΎΠ²:

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

мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π€ΠΎΡ‚ΠΎ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ

Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ использованиС C++. 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ: ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ содСрТаниС, описаниС ΠΈ аннотация

ΠŸΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌ ΠΊ Ρ‡Ρ‚Π΅Π½ΠΈΡŽ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΡŽ, описаниС, ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ содСрТаниС ΠΈΠ»ΠΈ прСдисловиС (зависит ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ написал сам Π°Π²Ρ‚ΠΎΡ€ ΠΊΠ½ΠΈΠ³ΠΈ Β«Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ использованиС C++. 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΒ»). Если Π²Ρ‹ Π½Π΅ нашли Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΊΠ½ΠΈΠ³Π΅ β€” Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ Π² коммСнтариях, ΠΌΡ‹ постараСмся ΠΎΡ‚Ρ‹ΡΠΊΠ°Ρ‚ΡŒ Π΅Ρ‘.

Π‘ΠΊΠΎΡ‚Ρ‚ ΠœΠ°ΠΉΠ΅Ρ€Ρ: Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠ½ΠΈΠ³ΠΈ Π°Π²Ρ‚ΠΎΡ€Π°

ΠšΡ‚ΠΎ написал Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ использованиС C++. 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ? Π£Π·Π½Π°ΠΉΡ‚Π΅ Ρ„Π°ΠΌΠΈΠ»ΠΈΡŽ, ΠΊΠ°ΠΊ Π·ΠΎΠ²ΡƒΡ‚ Π°Π²Ρ‚ΠΎΡ€Π° ΠΊΠ½ΠΈΠ³ΠΈ ΠΈ список всСх Π΅Π³ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠΉ ΠΏΠΎ сСриям.

мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π€ΠΎΡ‚ΠΎ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ

мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π€ΠΎΡ‚ΠΎ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ ΠΊΠ½ΠΈΠ³ΠΈ Π½Π° Π½Π° нашСм сайтС Π΅ΡΡ‚ΡŒ Ρƒ любого зарСгистрированного ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Если Π’Π°ΡˆΠ° ΠΊΠ½ΠΈΠ³Π° Π±Ρ‹Π»Π° ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π° Π±Π΅Π· Π’Π°ΡˆΠ΅Π³ΠΎ Π½Π° Ρ‚ΠΎ согласия, поТалуйста, Π½Π°ΠΏΡ€Π°Π²ΡŒΡ‚Π΅ Π’Π°ΡˆΡƒ ΠΆΠ°Π»ΠΎΠ±Ρƒ Π½Π° info@libcat.ru ΠΈΠ»ΠΈ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ Ρ„ΠΎΡ€ΠΌΡƒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ связи.

Π’ Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ 24 часов ΠΌΡ‹ Π·Π°ΠΊΡ€ΠΎΠ΅ΠΌ доступ ΠΊ нСлСгально Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π½ΠΎΠΌΡƒ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Ρƒ.

мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π€ΠΎΡ‚ΠΎ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ

мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π€ΠΎΡ‚ΠΎ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ

мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π€ΠΎΡ‚ΠΎ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ

мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π€ΠΎΡ‚ΠΎ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ

мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π€ΠΎΡ‚ΠΎ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ

мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π€ΠΎΡ‚ΠΎ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ

мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π€ΠΎΡ‚ΠΎ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ

мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π€ΠΎΡ‚ΠΎ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ

мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π€ΠΎΡ‚ΠΎ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ

мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π€ΠΎΡ‚ΠΎ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ

мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π€ΠΎΡ‚ΠΎ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ

мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π€ΠΎΡ‚ΠΎ мСйСрс с эффСктивноС использованиС с 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ

Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ использованиС C++. 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ β€” Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ бСсплатно ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΊΠ½ΠΈΠ³Ρƒ (вСсь тСкст) Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ

НиТС прСдставлСн тСкст ΠΊΠ½ΠΈΠ³ΠΈ, Ρ€Π°Π·Π±ΠΈΡ‚Ρ‹ΠΉ ΠΏΠΎ страницам. БистСма сохранСния мСста послСднСй ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½Π½ΠΎΠΉ страницы, позволяСт с удобством Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ бСсплатно ΠΊΠ½ΠΈΠ³Ρƒ Β«Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ использованиС C++. 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΒ», Π±Π΅Π· нСобходимости ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· Π·Π°Π½ΠΎΠ²ΠΎ ΠΈΡΠΊΠ°Ρ‚ΡŒ Π½Π° Ρ‡Ρ‘ΠΌ Π’Ρ‹ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΠ»ΠΈΡΡŒ. ΠŸΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ Π·Π°ΠΊΠ»Π°Π΄ΠΊΡƒ, ΠΈ смоТСтС Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° страницу, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ»ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅.

Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ использованиС C++. 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ

Книга Π‘ΠΊΠΎΡ‚Ρ‚Π° ΠœΠ΅ΠΉΠ΅Ρ€ΡΠ° Β«Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ использованиС C++Β», Ρ‚Ρ€Π΅Ρ‚ΡŒΡ рСдакция – это концСнтрация ΠΎΠΏΡ‹Ρ‚Π° программирования – Ρ‚ΠΎΠ³ΠΎ ΠΎΠΏΡ‹Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Π΅Π· Π½Π΅Π΅ достался Π±Ρ‹ Π²Π°ΠΌ Π΄ΠΎΡ€ΠΎΠ³ΠΎΠΉ Ρ†Π΅Π½ΠΎΠΉ. Π­Ρ‚Π° ΠΊΠ½ΠΈΠ³Π° – Π²Π΅Π»ΠΈΠΊΠΎΠ»Π΅ΠΏΠ½Ρ‹ΠΉ источник, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ всСм, ΠΊΡ‚ΠΎ ΠΏΠΈΡˆΠ΅Ρ‚ Π½Π° C++ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ.

ΠŸΠΈΡ‚Π΅Ρ€ Π”ΡƒΠ»ΠΈΠΌΠΎΠ², ME, ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€, ΠΏΠΎΠ΄Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΡ†Π΅Π½ΠΊΠΈ ΠΈ исслСдований NAVSYSCOM, Австралия

Π’Ρ€Π΅Ρ‚ΡŒΡ рСдакция остаСтся Π»ΡƒΡ‡ΡˆΠ΅ΠΉ ΠΊΠ½ΠΈΠ³ΠΎΠΉ, посвящСнной Ρ‚ΠΎΠΌΡƒ, ΠΊΠ°ΠΊ ΡΠ»ΠΎΠΆΠΈΡ‚ΡŒ вмСстС всС части C++ для создания эффСктивных ΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ цСлостных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Если Π²Ρ‹ ΠΏΡ€Π΅Ρ‚Π΅Π½Π΄ΡƒΠ΅Ρ‚Π΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Ρ‚ΡŒ программистом C++, Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π΅Π΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ.

Π­Ρ€ΠΈΠΊ НаглСр, ΠΊΠΎΠ½ΡΡƒΠ»ΡŒΡ‚Π°Π½Ρ‚, ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°Ρ‚Π΅Π»ΡŒ ΠΈ Π°Π²Ρ‚ΠΎΡ€ Β«Π˜Π·ΡƒΡ‡Π°Ρ C++Β»

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

Π”ΠΆΠ΅ΠΊ Π’. РивСс, ΠΈΡΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ Bleading Edge Software Technologies

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π½ΠΎΠ²Ρ‹ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ Π² мою ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, сразу ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π·Π°Π΄Π°Π½ΠΈΠ΅ – ΠΏΡ€ΠΎΡ‡Π΅ΡΡ‚ΡŒ эту ΠΊΠ½ΠΈΠ³Ρƒ.

Майкл Π›Π°Π½Ρ†Π΅Ρ‚Ρ‚Π°, Π²Π΅Π΄ΡƒΡ‰ΠΈΠΉ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌΡƒ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΡŽ

Π― ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π» ΠΏΠ΅Ρ€Π²ΡƒΡŽ Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΡŽ Β«Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ использования C++Β» ΠΎΠΊΠΎΠ»ΠΎ 9 Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄, ΠΈ эта ΠΊΠ½ΠΈΠ³Π° сразу стала ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΌΠΎΠΈΡ… Π»ΡŽΠ±ΠΈΠΌΡ‹Ρ… ΠΊΠ½ΠΈΠ³ ΠΏΠΎ C++. На ΠΌΠΎΠΉ взгляд, Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Β«Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ использования C++Β» остаСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΊ ΠΏΡ€ΠΎΡ‡Ρ‚Π΅Π½ΠΈΡŽ для всСх, ΠΊΡ‚ΠΎ ΠΆΠ΅Π»Π°Π΅Ρ‚ эффСктивно ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° C++. ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΆΠΈΡ‚ΡŒ Π² Π»ΡƒΡ‡ΡˆΠ΅ΠΌ ΠΌΠΈΡ€Π΅, Ссли программисты C++ ΠΏΡ€ΠΎΡ‡Ρ‚ΡƒΡ‚ эту ΠΊΠ½ΠΈΠ³Ρƒ ΠΏΡ€Π΅ΠΆΠ΄Π΅, Ρ‡Π΅ΠΌ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²ΡƒΡŽ строку ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.

Дэнни Π Π°Π±Π±Π°Π½ΠΈ, ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌΡƒ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΡŽ

ΠŸΠ΅Ρ€Π²ΠΎΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Β«Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ использования C++Β» Π‘ΠΊΠΎΡ‚Ρ‚Π° ΠœΠ΅ΠΉΠ΅Ρ€ΡΠ° попалось ΠΌΠ½Π΅, ΠΊΠΎΠ³Π΄Π° я Π±Ρ‹Π» рядовым программистом ΠΈ напряТСнно старался ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΠΎΡ€ΡƒΡ‡Π΅Π½Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ. И это Π±Ρ‹Π»ΠΎ спасСниСм! Π― ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ», Ρ‡Ρ‚ΠΎ совСты ΠœΠ΅ΠΉΠ΅Ρ€ΡΠ° практичСски ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ ΠΈ эффСктивны, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π½Π° 100 % Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ±Π΅Ρ‰Π°ΡŽΡ‚. Π’Ρ€Π΅Ρ‚ΡŒΡ рСдакция ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π² практичСском ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ C++ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π½Π°Π΄ соврСмСнными ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ, прСдоставляя ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ самых Π½ΠΎΠ²Ρ‹Ρ… срСдствах ΠΈ возмоТностях языка. Π― с ΡƒΠ΄ΠΎΠ²ΠΎΠ»ΡŒΡΡ‚Π²ΠΈΠ΅ΠΌ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ», Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ³Ρƒ Π½Π°ΠΉΡ‚ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΈ интСрСсного для сСбя Π² Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΌ ΠΈΠ·Π΄Π°Π½ΠΈΠΈ ΠΊΠ½ΠΈΠ³ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ, ΠΊΠ°ΠΊ ΠΌΠ½Π΅ казалось, знаю ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ.

Майкл Π’ΠΎΠΏΠΈΠΊ, тСхничСский ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€

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

Π‘ΠΈΠ΄Π΄Ρ…Π°Ρ€Ρ‚Ρ…Π° ΠšΠ°Ρ€Π°Π½ Π‘ΠΈΠ½Π³Ρ…, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния

Книга Β«Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ использованиС C++Β» сущСствуСт ΡƒΠΆΠ΅ 15 Π»Π΅Ρ‚, Π° ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ C++ я Π½Π°Ρ‡Π°Π» ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π·Π° 5 Π»Π΅Ρ‚ Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ написал Π΅Π΅. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ€Π°Π±ΠΎΡ‚Π° Π½Π°Π΄ этим ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ вСдСтся ΠΎΠΊΠΎΠ»ΠΎ 20 Π»Π΅Ρ‚. Π—Π° это врСмя я ΠΏΠΎΠ»ΡƒΡ‡Π°Π» поТСлания, замСчания, исправлСния, Π° ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈ ΠΎΡˆΠ΅Π»ΠΎΠΌΠ»ΡΡŽΡ‰ΠΈΠ΅ наблюдСния ΠΎΡ‚ сотСн (тысяч?) людСй. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… ΠΏΠΎΠΌΠΎΠ³ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΡŽ Β«Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ использования C++Β». Π― Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ ΠΈΠΌ всСм.

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

Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ использованиС C++. 55 Π²Π΅Ρ€Π½Ρ‹Ρ… способов ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ структуру ΠΈ ΠΊΠΎΠ΄ Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ

Π”Π°ΠΆΠ΅ ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Ρ‚ΠΎΡ‡Π½ΠΎ Π·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ ΠΆΠ΅Π»Π°Π΅ΠΌΡ‹Ρ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Π±Ρ‹Π²Π°Π΅Ρ‚ Π½Π΅Π»Π΅Π³ΠΊΠΎ. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ присваивания? Когда дСструктор Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ? Как сСбя Π²Π΅Π΄Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ new, Ссли Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΉΡ‚ΠΈ достаточно памяти? Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Π°ΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ Π΄Π΅Ρ‚Π°Π»ΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΈΠ½Π°Ρ‡Π΅ Π²Ρ‹ ΠΏΠΎΡ‡Ρ‚ΠΈ навСрняка ΡΡ‚ΠΎΠ»ΠΊΠ½Π΅Ρ‚Π΅ΡΡŒ с Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹ΠΌ ΠΈ Π΄Π°ΠΆΠ΅ Π½Π΅ΠΎΠ±ΡŠΡΡΠ½ΠΈΠΌΡ‹ΠΌ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π­Ρ‚Π° ΠΊΠ½ΠΈΠ³Π° ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ситуаций.

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, эту ΠΊΠ½ΠΈΠ³Ρƒ слоТно Π½Π°Π·Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΌ руководством ΠΏΠΎ C++. Π‘ΠΊΠΎΡ€Π΅Π΅, это коллСкция ΠΈΡ… 55 совСтов (ΠΈΠ»ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»), ΠΊΠ°ΠΊ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ваши ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠ°Ρ€Π°Π³Ρ€Π°Ρ„ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ»ΠΈ ΠΌΠ΅Π½Π΅Π΅ нСзависим ΠΎΡ‚ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ…, Π½ΠΎ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ Π΅ΡΡ‚ΡŒ пСрСкрСстныС ссылки. Π›ΡƒΡ‡ΡˆΠ΅ всСго Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ эту ΠΊΠ½ΠΈΠ³Ρƒ, Π½Π°Ρ‡Π°Π² с Ρ‚ΠΎΠ³ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ вас Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ интСрСсуСт, Π° Π·Π°Ρ‚Π΅ΠΌ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎ ссылкам, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, ΠΊΡƒΠ΄Π° ΠΎΠ½ΠΈ вас ΠΏΡ€ΠΈΠ²Π΅Π΄ΡƒΡ‚.

Π­Ρ‚Π° ΠΊΠ½ΠΈΠ³Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ являСтся Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ Π² C++. Π’ Π³Π»Π°Π²Π΅ 2, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, я Ρ€Π°ΡΡΠΊΠ°Π·Ρ‹Π²Π°ΡŽ ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ конструкторов, дСструкторов ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² присваивания, Π½ΠΎ ΠΏΡ€ΠΈ этом ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡŽ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΡƒΠΆΠ΅ Π·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ эти Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΄Π΅Π»Π°ΡŽΡ‚ ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ΡΡ. На эту Ρ‚Π΅ΠΌΡƒ сущСствуСт мноТСство ΠΊΠ½ΠΈΠ³ ΠΏΠΎ C++.

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

Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя настоящая ΠΊΠ½ΠΈΠ³Π° ограничиваСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ стандартным C++. Π—Π΄Π΅ΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ лишь Ρ‚Π΅ срСдства языка, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ описаны Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ стандартС. ΠŸΠ΅Ρ€Π΅Π½ΠΎΡΠΈΠΌΠΎΡΡ‚ΡŒ – ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ вопрос для этой ΠΊΠ½ΠΈΠ³ΠΈ, поэтому Ссли Π²Ρ‹ ΠΈΡ‰Π΅Ρ‚Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΠΎ-зависимыС Ρ‚Ρ€ΡŽΠΊΠΈ, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ изданиям.

НС Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Π²Ρ‹ Π² этой ΠΊΠ½ΠΈΠ³Π΅ ΠΈ «ЕвангСлия ΠΎΡ‚ C++Β» – СдинствСнно Π²Π΅Ρ€Π½ΠΎΠ³ΠΎ ΠΏΡƒΡ‚ΠΈ ΠΊ идСальной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½Π° C++. КаТдоС ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ – это рСкомСндация ΠΏΠΎ Ρ‚ΠΎΠΌΡƒ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΌΡƒ аспСкту: ΠΊΠ°ΠΊ ΠΎΡ‚Ρ‹ΡΠΊΠ°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄Π°Ρ‡Π½Ρ‹ΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½, ΠΊΠ°ΠΊ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Ρ… ошибок, ΠΊΠ°ΠΊ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ максимальной эффСктивности, Π½ΠΎ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² Π½Π΅ являСтся ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹ΠΌ. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния – это слоТная Π·Π°Π΄Π°Ρ‡Π°, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ влияниС ограничСния Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ обСспСчСния, ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, поэтому Π»ΡƒΡ‡ΡˆΠ΅Π΅, Ρ‡Ρ‚ΠΎ я ΠΌΠΎΠ³Ρƒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, – это ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡŽ качСства ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

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

Π›ΡƒΡ‡ΡˆΠΈΠΉ способ использования этой ΠΊΠ½ΠΈΠ³ΠΈ – ΠΏΠΎΡΡ‚ΠΈΡ‡ΡŒ Ρ‚Π°ΠΉΠ½Ρ‹ повСдСния C++, ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΎΠ½ Π²Π΅Π΄Π΅Ρ‚ сСбя ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊ, Π° Π½Π΅ ΠΈΠ½Π°Ρ‡Π΅, ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² своих цСлях.

ВСрминология

БущСствуСт нСбольшой словарик C++, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Π»Π°Π΄Π΅Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ программист. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ‹ достаточно Π²Π°ΠΆΠ½Ρ‹, поэтому ΠΈΠΌΠ΅Π΅Ρ‚ смысл ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌ ΠΈΡ… ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ.

ОбъявлСниС (declaration) сообщаСт компилятору имя ΠΈ Ρ‚ΠΈΠΏ Ρ‡Π΅Π³ΠΎ-Π»ΠΈΠ±ΠΎ, опуская Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅Ρ‚Π°Π»ΠΈ. ОбъявлСния выглядят Ρ‚Π°ΠΊ:

extern int x; // объявлСниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

std::size_t numDigits(int number); // объявлСниС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

class Widget; // объявлСниС класса

template // объявлСниС шаблона

class GraphNode; // (см. ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ 42 ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Β«typenameΒ»

Π—Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ я Π½Π°Π·Ρ‹Π²Π°ΡŽ Ρ†Π΅Π»ΠΎΠ΅ число x Β«ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌΒ», нСсмотря Π½Π° Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ это пСрСмСнная встроСнного Ρ‚ΠΈΠΏΠ°. НСкоторыС люди ΠΏΠΎΠ΄ Β«ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈΒ» ΠΏΠΎΠ½ΠΈΠΌΠ°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ², Π½ΠΎ я Π½Π΅ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΡƒ ΠΊ ΠΈΡ… числу. Π’Π°ΠΊΠΆΠ΅ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ функция numDigits() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ‚ΠΈΠΏ std::size_t, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ‚ΠΈΠΏ size_t ΠΈΠ· пространства ΠΈΠΌΠ΅Π½ std. Π­Ρ‚ΠΎ Ρ‚ΠΎ пространство ΠΈΠΌΠ΅Π½, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ находится ΠΏΠΎΡ‡Ρ‚ΠΈ всС ΠΈΠ· стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ C++. Однако, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ стандартная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° C (Ρ‚ΠΎΡ‡Π½Π΅Π΅ говоря, Π‘89) Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использована Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½Π° C++, символы, унаслСдованныС ΠΎΡ‚ C (Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ size_t), ΠΌΠΎΠ³ΡƒΡ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² глобальном контСкстС, Π²Π½ΡƒΡ‚Ρ€ΠΈ std, Π»ΠΈΠ±ΠΎ Π² ΠΎΠ±ΠΎΠΈΡ… мСстах, Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Π±Ρ‹Π»ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²ΠΎΠΉ #include. Π’ этой ΠΊΠ½ΠΈΠ³Π΅ я ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡŽ, Ρ‡Ρ‚ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ #include Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ C++. Π’ΠΎΡ‚ ΠΏΠΎΡ‡Π΅ΠΌΡƒ я ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π»ΡΡŽ std::size_t, Π° Π½Π΅ просто size_t. Когда я ΡƒΠΏΠΎΠΌΠΈΠ½Π°ΡŽ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π²Π½Π΅ тСкста ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ‚ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠΏΡƒΡΠΊΠ°ΡŽ ссылку Π½Π° std, полагая, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ Π²Π΅Ρ‰ΠΈ, ΠΊΠ°ΠΊ size_t, vector ΠΈ cout, находятся Π² пространствС ΠΈΠΌΠ΅Π½ std. Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… ΠΆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ я всСгда Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽ std, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΠΊΠΎΠ΄ Π½Π΅ скомпилируСтся.

ΠšΡΡ‚Π°Ρ‚ΠΈ, size_t – это всСго-навсСго ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²ΠΎΠΉ typedef синоним для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² C++ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для Ρ€Π°Π·Π½ΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π° счСтчиков (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, количСства символов Π² строках Ρ‚ΠΈΠΏΠ° char*, количСства элСмСнтов Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°Ρ… STL ΠΈ Ρ‚. ΠΏ.). Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚ΠΈΠΏ, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌΡ‹ΠΉ функциями operator[] Π² Π²Π΅ΠΊΡ‚ΠΎΡ€Π°Ρ… (vector), Π΄Π΅ΠΊΠ°Ρ… (deque) ΠΈ строках (string). Π­Ρ‚ΠΎΠΌΡƒ соглашСнию ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ Π½Π°ΡˆΠΈΡ… собствСнных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ operator[] Π² ΠΏΡ€Π°Π²ΠΈΠ»Π΅ 3.

Π’ любом объявлСнии Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ указываСтся Π΅Π΅ сигнатура, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ‚ΠΈΠΏΡ‹ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния. МоТно ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ сигнатура Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ – это Π΅Π΅ Ρ‚ΠΈΠΏ. Π’Π°ΠΊ, сигнатурой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ numDigits являСтся std::size_t(int), ΠΈΠ½Ρ‹ΠΌΠΈ словами, это «функция, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π°Ρ int ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰Π°Ρ std::size_tΒ». ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ «сигнатуры» Π² C++ Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Ρ‚ΠΈΠΏ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ значСния, Π½ΠΎ Π² этой ΠΊΠ½ΠΈΠ³Π΅ Π½Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ всС ΠΆΠ΅ являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ сигнатуры.

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ (definition) сообщаСт компилятору Π΄Π΅Ρ‚Π°Π»ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡƒΡ‰Π΅Π½Ρ‹ Π² объявлСнии. Для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ – это Ρ‚ΠΎ мСсто, Π³Π΄Π΅ компилятор выдСляСт для Π½Π΅Π³ΠΎ ΠΏΠ°ΠΌΡΡ‚ΡŒ. Для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ шаблона Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ содСрТит Ρ‚Π΅Π»ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π’ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ класса ΠΈΠ»ΠΈ шаблона класса ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ΡΡ Π΅Π³ΠΎ Ρ‡Π»Π΅Π½Ρ‹:

int x; // ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

std::size_t numDigits(int number) // ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

std::size_t digitsSoFar = 1; // дСсятичных Π·Π½Π°ΠΊΠΎΠ² Π² своСм ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅)

template // ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ шаблона

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ (initialization) – это процСсс присваивания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ значСния. Для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ² инициализация выполняСтся конструкторами. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ (default constructor) – это конструктор, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½ Π±Π΅Π· Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². Π’Π°ΠΊΠΎΠΉ конструктор Π»ΠΈΠ±ΠΎ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² вовсС, Π»ΠΈΠ±ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°:

A(); // конструктор ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

explicit B(int x = 0; bool b = true); // конструктор ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ,

>; // см. далСС объяснСниС

// ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова β€œexplicit”

explicit C(int x); // это Π½Π΅ конструктор ΠΏΠΎ

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€Ρ‹ классов B ΠΈ C ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ Π² ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом explicit (явный). Π­Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΡ… использованиС для нСявных ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ Ρ‚ΠΈΠΏΠΎΠ², хотя Π½Π΅ Π·Π°ΠΏΡ€Π΅Ρ‰Π°Π΅Ρ‚ примСнСния, Ссли ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡƒΠΊΠ°Π·Π°Π½ΠΎ явно:

void doSomething(B bObject); // функция ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° B

B bObj1; // ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° B

doSomething(bObj1); // Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ, B пСрСдаСтся doSomething

B bObj(28); // Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ, создаСт B ΠΈΠ· Ρ†Π΅Π»ΠΎΠ³ΠΎ 28

// (ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ bool ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ true)

doSomething(28); // ошибка! doSomething ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ B,

// Π° Π½Π΅ int, ΠΈ Π½Π΅ сущСствуСт нСявного

// прСобразования ΠΈΠ· int Π² B

doSomething(B(28)); // Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ конструктор

// B для явного прСобразования (привСдСния)

// int Π² B (см. Π² ΠΏΡ€Π°Π²ΠΈΠ»Π΅ 27 ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ

// ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠΈ Ρ‚ΠΈΠΏΠΎΠ²)

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

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

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ копирования (copy constructor) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ самого Ρ‚ΠΈΠΏΠ°, Π° ΠΊΠΎΠΏΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ присваивания (copy assignment operator) примСняСтся для копирования значСния ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ – Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Ρ‚ΠΈΠΏΠ°:

Widget(); // конструктор ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

Widget(const Widget& rhs); // конструктор копирования

Widget& operator=(const Widget& rhs); // ΠΊΠΎΠΏΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ присваивания

Widget w1; // Π²Ρ‹Π·ΠΎΠ² конструктора ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

Widget w2(w1); // Π²Ρ‹Π·ΠΎΠ² конструктора копирования

w1 = w2; // Π²Ρ‹Π·ΠΎΠ² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° присваивания

Π‘ΡƒΠ΄ΡŒΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹, ΠΊΠΎΠ³Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ, ΠΏΠΎΡ…ΠΎΠΆΡƒΡŽ Π½Π° присваиваниС, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ синтаксис Β«=Β» Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использован для Π²Ρ‹Π·ΠΎΠ²Π° конструктора копирования:

Widget w3 = w2; // Π²Ρ‹Π·ΠΎΠ² конструктора копирования!

К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, конструктор копирования Π»Π΅Π³ΠΊΠΎ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΎΡ‚ присваивания. Если Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ опрСдСляСтся (ΠΊΠ°ΠΊ w3 Π² послСднСм ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ), Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ конструктор, это Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ присваиваниС. Если ΠΆΠ΅ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π½Π΅ создаСтся (ΠΊΠ°ΠΊ Π² Β«w1=w2Β»), Ρ‚ΠΎ конструктор Π½Π΅ примСняСтся ΠΈ это – присваиваниС.

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ копирования – особСнно ваТная функция, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° опрСдСляСт, ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ пСрСдаСтся ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ. НапримСр, рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚:

bool hasAcceptableQuality(Widget w);

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ w пСрСдаСтся Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ hasAcceptableQuality ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ, поэтому Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹Π·ΠΎΠ²Π° aWidget копируСтся Π² w. ΠšΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ осущСствляСтся конструктором копирования ΠΈΠ· класса Widget. Π’ΠΎΠΎΠ±Ρ‰Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π²Ρ‹Π·ΠΎΠ² конструктора копирования. (Но, строго говоря, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ – плохая идСя. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Π»ΡƒΡ‡ΡˆΠΈΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ – ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ΠΏΠΎ ссылкС Π½Π° константу, подробности см. Π² ΠΏΡ€Π°Π²ΠΈΠ»Π΅ 20.)

STL – стандартная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° шаблонов (Standard Template Library) – это Ρ‡Π°ΡΡ‚ΡŒ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΊΠ°ΡΠ°ΡŽΡ‰Π°ΡΡΡ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ vector, list, set, map ΠΈ Ρ‚. Π΄.), ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ vector ::iterator, set ::iterator ΠΈ Ρ‚. Π΄.), Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ for_each, find, sort ΠΈ Ρ‚. Π΄.) ΠΈ всСй связанной с этим Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π’ Π½Π΅ΠΉ ΠΎΡ‡Π΅Π½ΡŒ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (function objects), Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Π²Π΅Π΄ΡƒΡ‰ΠΈΠ΅ сСбя ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ функциям. Π’Π°ΠΊΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ прСдставлСны классами, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ΅Π½ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Π²Ρ‹Π·ΠΎΠ²Π° operator(). Если Π²Ρ‹ Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с STL, Π²Π°ΠΌ понадобится, ΠΏΠΎΠΌΠΈΠΌΠΎ настоящСй ΠΊΠ½ΠΈΠ³ΠΈ, ΠΊΠ°ΠΊΠΎΠ΅-Π½ΠΈΠ±ΡƒΠ΄ΡŒ достойноС руководство, посвящСнноС этой Ρ‚Π΅ΠΌΠ΅, вСдь Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° STL Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠ΄ΠΎΠ±Π½Π°, Ρ‡Ρ‚ΠΎ Π½Π΅ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π΅Π΅ прСимущСствами Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π½Π΅ΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ. Π‘Ρ‚ΠΎΠΈΡ‚ лишь Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π½Π΅ΠΉ, ΠΈ Π²Ρ‹ сами это почувствуСтС.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Π°ΠΌ, ΠΏΡ€ΠΈΡˆΠ΅Π΄ΡˆΠΈΠΌ ΠΊ C++ ΠΎΡ‚ языков Π²Ρ€ΠΎΠ΄Π΅ Java ΠΈΠ»ΠΈ C#, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ странным понятиС Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ повСдСния. По Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… конструкций Π² C++ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ: Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½Π½ΠΎ ΠΏΡ€Π΅Π΄ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ Π²ΠΎ врСмя исполнСния. Π’ΠΎΡ‚ Π΄Π²Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π°:

int *p = 0; // p – Π½ΡƒΠ»Π΅Π²ΠΎΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ

char name[] = β€œDaria” // name – массив Π΄Π»ΠΈΠ½Ρ‹ 6 (Π½Π΅ Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΠΏΡ€ΠΎ

char c = name[10]; // ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ индСкса массива

// ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π΅Ρ‚ Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅

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

Иной Ρ‚Π΅Ρ€ΠΌΠΈΠ½, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΌΡƒΡ‚ΠΈΡ‚ΡŒ программистов, ΠΏΡ€ΠΈΡˆΠ΅Π΄ΡˆΠΈΡ… ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… языков, – это интСрфСйс. Π’ Java ΠΈ. NET-совмСстимых языках интСрфСйсы ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‡Π°ΡΡ‚ΡŒΡŽ языка, Π½ΠΎ Π² C++ Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ Π½Π΅Ρ‚, хотя Π² ΠΏΡ€Π°Π²ΠΈΠ»Π΅ 31 рассматриваСтся Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½ΠΈΠ΅. Когда я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ «интСрфСйс», Ρ‚ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ имСю Π² Π²ΠΈΠ΄Ρƒ сигнатуры Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, доступныС Ρ‡Π»Π΅Π½Ρ‹ класса (Β«ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ интСрфСйс», Β«Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹ΠΉ интСрфСйс», Β«Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ интСрфСйс») ΠΈΠ»ΠΈ выраТСния, допустимыС Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Ρ‚ΠΈΠΏΠ° для шаблонов (см. ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ 41). Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ΄ интСрфСйсом я понимаю ΠΎΠ±Ρ‰ΡƒΡŽ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ проСктирования.

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

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

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

БоглашСния ΠΎΠ± ΠΈΠΌΠ΅Π½Π°Ρ…

Π― пытался Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ осмыслСнныС ΠΈΠΌΠ΅Π½Π° для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², классов, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, шаблонов ΠΈ Ρ‚. ΠΏ., Π½ΠΎ сСмантика Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π½Π½Ρ‹Ρ… ΠΌΠ½ΠΎΠΉ ΠΈΠΌΠ΅Π½ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ для вас Π½Π΅ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Π°. НапримСр, я часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ для ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈΠΌΠ΅Π½Π° lhs ΠΈ rhs. Π˜ΠΌΠ΅Π΅Ρ‚ΡΡ Π² Π²ΠΈΠ΄Ρƒ соотвСтствСнно «лСвая Ρ‡Π°ΡΡ‚ΡŒΒ» (left-hand side) ΠΈ «правая Ρ‡Π°ΡΡ‚ΡŒΒ» (right-hand side). Π­Ρ‚ΠΈ ΠΈΠΌΠ΅Π½Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π»ΡΡŽΡ‚ΡΡ Π² функциях, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΡ… Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ operator== ΠΈ operator*. НапримСр, Ссли a ΠΈ b – ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ Ρ€Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ числа, ΠΈ Ссли ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ класса Rational ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ½ΠΎΠΆΠ°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-Π½Π΅Ρ‡Π»Π΅Π½Π° operator*() (ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ случай описан Π² ΠΏΡ€Π°Π²ΠΈΠ»Π΅ 24), Ρ‚ΠΎ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

эквивалСнтно Π²Ρ‹Π·ΠΎΠ²Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

Π’ ΠΏΡ€Π°Π²ΠΈΠ»Π΅ 24 я объявляю operator* ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

const Rational operator*(const Rational& lhs, const Rational& rhs);

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, Π»Π΅Π²Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ – a – Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ называСтся lhs, Π° ΠΏΡ€Π°Π²Ρ‹ΠΉ – b – rhs.

Для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ-Ρ‡Π»Π΅Π½ΠΎΠ² Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Π² Π»Π΅Π²ΠΎΠΉ части ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° прСдставлСн ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΌ this, Π° СдинствСнный ΠΎΡΡ‚Π°Π²ΡˆΠΈΠΉΡΡ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ я ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°Π·Ρ‹Π²Π°ΡŽ rhs. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ это Π² объявлСнии Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ-Ρ‡Π»Π΅Π½ΠΎΠ² класса Widget Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… Π²Ρ‹ΡˆΠ΅. Β«WidgetΒ» Π½Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ. Π­Ρ‚ΠΎ просто имя, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ я ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠ°ΠΊ-Ρ‚ΠΎ Π½Π°Π·Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ класса. Оно Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΊ элСмСнтам управлСния (Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°ΠΌ), примСняСмым Π² графичСских интСрфСйсах (GUI).

Часто я ΠΈΠΌΠ΅Π½ΡƒΡŽ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ, слСдуя соглашСнию, с соотвСтствии с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° T называСтся pt (Β«pointer to TΒ»). Π’ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹:

Widget *pw; // pw = ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Widget

Airplane *pa; // pa = ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Airplane

GameCharacter *pgc; // pgc = ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° GameCharacter

ΠŸΠΎΡ…ΠΎΠΆΠ΅Π΅ соглашСниС примСняСтся ΠΈ для ссылок: rw ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ссылкой Π½Π° Widget, Π° ra – ссылкой Π½Π° Airplane.

Иногда для имСнования Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-Ρ‡Π»Π΅Π½Π° я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ имя mf.

ΠœΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ

Π’ самом языкС C++ Π½Π΅Ρ‚ прСдставлСния ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ°Ρ… (threads), Π΄Π° ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΎ ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ°Ρ… ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ исполнСния. Π’ΠΎ ΠΆΠ΅ относится ΠΈ ΠΊ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ C++. Π˜Π½Ρ‹ΠΌΠΈ словами, с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния C++ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π΅ сущСствуСт.

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

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

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ TR1 ΠΈ Boost

Бсылки Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ TR1 ΠΈ Boost Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°Ρ‚ΡŒ Π½Π° протяТСнии всСй этой ΠΊΠ½ΠΈΠ³ΠΈ. КаТдой ΠΈΠ· Π½ΠΈΡ… посвящСно ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ (54 – TR1 ΠΈ 55 – Boost), Π½ΠΎ, ΠΊ соТалСнию, ΠΎΠ½ΠΈ находятся Π² самом ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠ½ΠΈΠ³ΠΈ. ΠŸΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡ‡Π΅ΡΡ‚ΡŒ ΠΈΡ… прямо сСйчас, Π½ΠΎ Ссли Π²Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΠ½ΠΈΠ³Ρƒ ΠΏΠΎ порядку, Π° Π½Π΅ с ΠΊΠΎΠ½Ρ†Π°, Ρ‚ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ замСчания ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΎ Ρ‡Π΅ΠΌ ΠΈΠ΄Π΅Ρ‚ Ρ€Π΅Ρ‡ΡŒ:

β€’ TR1 («Technical Report 1») – это спСцификация Π½ΠΎΠ²ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΠΎΠΉ Π² ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ C++. Она ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½Π° Π² Π²ΠΈΠ΄Π΅ Π½ΠΎΠ²Ρ‹Ρ… шаблонов классов ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ…ΡΡˆ-Ρ‚Π°Π±Π»ΠΈΡ†, Β«ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ…Β» ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ с подсчСтом ссылок, рСгулярных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ. ВсС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ TR1 находятся Π² пространствС ΠΈΠΌΠ΅Π½ tr1, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Π»ΠΎΠΆΠ΅Π½ΠΎ Π² пространство ΠΈΠΌΠ΅Π½ std.

β€’ Boost – это организация ΠΈ Web-сайт (http://boost.org), Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ΡΡ пСрСносимыС, Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ C++ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ. Π‘ΠΎΠ»ΡŒΡˆΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ TR1 базируСтся Π½Π° Ρ€Π°Π±ΠΎΡ‚Π΅, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠΉ Boost, ΠΈ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° поставщики компиляторов Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ TR1 Π² дистрибутивы C++, Web-сайт Boost Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΡΡ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π³Π»Π°Π²Π½Ρ‹ΠΌ источником Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ TR1. Boost прСдоставляСт большС, Ρ‡Π΅ΠΌ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ Π² TR1, ΠΎΠ΄Π½Π°ΠΊΠΎ Π² любом случаС ΠΎ Π½Π΅ΠΌ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π·Π½Π°Ρ‚ΡŒ.

Π“Π»Π°Π²Π° 1
ΠŸΡ€ΠΈΡƒΡ‡Π°ΠΉΡ‚Π΅ΡΡŒ ΠΊ C++

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

ΠŸΡ€Π°Π²ΠΈΠ»ΠΎ 1: ΠžΡ‚Π½ΠΎΡΠΈΡ‚Π΅ΡΡŒ ΠΊ C++ ΠΊΠ°ΠΊ ΠΊ ΠΊΠΎΠ½Π³Π»ΠΎΠΌΠ΅Ρ€Π°Ρ‚Ρƒ языков

ΠŸΠΎΠ½Π°Ρ‡Π°Π»Ρƒ C++ Π±Ρ‹Π» просто языком C с Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… срСдств. Π”Π°ΠΆΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ C++ (Β«C с классами») ΠΎΡ‚Ρ€Π°ΠΆΠ°Π΅Ρ‚ эту связь.

По ΠΌΠ΅Ρ€Π΅ Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ язык становился всС Π±ΠΎΠ»Π΅Π΅ Π·Ρ€Π΅Π»Ρ‹ΠΌ, ΠΎΠ½ рос ΠΈ развивался, Π² Π½Π΅Π³ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Π»ΠΈΡΡŒ ΠΈΠ΄Π΅ΠΈ ΠΈ стратСгии программирования, выходящиС Π·Π° Ρ€Π°ΠΌΠΊΠΈ C с классами. Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΊ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ (см. ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ 29). Π¨Π°Π±Π»ΠΎΠ½Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΈ наши прСдставлСния ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ (см. ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ 41), Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° STL ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»Π° ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΠΎΡΡ‚ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΠΈΠΊΡ‚ΠΎ Ρ€Π°Π½Π΅Π΅ Π½Π΅ ΠΌΠΎΠ³ сСбС ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ.

БСгодня C++ – это язык программирования с нСсколькими ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ°ΠΌΠΈ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½ΠΎΠ΅, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅, ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½ΠΎΠ΅ ΠΈ ΠΌΠ΅Ρ‚Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. Π­Ρ‚ΠΈ ΠΌΠΎΡ‰ΡŒ ΠΈ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ Π΄Π΅Π»Π°ΡŽΡ‚ C++ нСсравнСнным инструмСнтом, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΌΠΎΠ³ΡƒΡ‚ привСсти Π² Π·Π°ΠΌΠ΅ΡˆΠ°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ. Π£ любой Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ Β«ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌΡƒ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡŽΒ» Π΅ΡΡ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ. Как Π½Π°ΠΉΡ‚ΠΈ смысл Π² Ρ‚Π°ΠΊΠΎΠΌ языкС?

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

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

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

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

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