Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ конструктор

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ класса

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

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

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

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

Π’ΠΈΠ΄Ρ‹ конструкторов

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

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

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ копирования

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€, Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ являСтся ссылка Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ класса. ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΠ΅Ρ‚ΡΡ Π² C++ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ.

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

АргумСнт Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎ ссылкС, Π° Π½Π΅ ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ. Π­Ρ‚ΠΎ Π²Ρ‹Ρ‚Π΅ΠΊΠ°Π΅Ρ‚ ΠΈΠ· ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΈ: ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ (Π² частности, для Π²Ρ‹Π·ΠΎΠ²Π° конструктора) трСбуСтся ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. Но для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ конструктор копирования.

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ прСобразования

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΉ ΠΎΠ΄ΠΈΠ½ Π°Π³Ρ€ΡƒΠΌΠ΅Π½Ρ‚. Π—Π°Π΄Π°Ρ‘Ρ‚ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° своСго Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Π² Ρ‚ΠΈΠΏ конструктора. Π’Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° нСявно примСняСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли ΠΎΠ½ΠΎ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎ.

Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ конструктор

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ Π½Π΅ Π±Ρ‹Π²Π°Π΅Ρ‚ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π² смыслС Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° β€” для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Π°Π», Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ конструктор, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ автоматичСски настроит Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

являСтся Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΌ β€” Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° reintroduce Ρ€Π°Π·ΠΎΡ€Π²Π°Π»Π° Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ пСрСопрСдСлСния Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, ΠΈ Π² Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Π²Π°Π½ конструктор TMotorcycle.Create (Π° Π·Π½Π°Ρ‡ΠΈΡ‚, Π±ΡƒΠ΄Π΅Ρ‚ создан ΠΌΠΎΡ‚ΠΎΡ†ΠΈΠΊΠ», Π° Π½Π΅ ΠΌΠΎΠΏΠ΅Π΄!)

Бинтаксис

Имя конструктора Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ с ΠΈΠΌΠ΅Π½Π΅ΠΌ класса. ДопускаСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСсколько конструкторов с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ, Π½ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ.

Python

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Delphi

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Eiffel

Π’ Π­ΠΉΡ„Π΅Π»Π΅ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°ΠΌΠΈ создания. ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ создания Π² Ρ‡Ρ‘ΠΌ-Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ конструкторам ΠΈ Π² Ρ‡Ρ‘ΠΌ-Ρ‚ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ. Они ΠΈΠΌΠ΅ΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ характСристики:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

НСобходимо ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² ColdFusion Π½Π΅ сущСствуСт ΠΌΠ΅Ρ‚ΠΎΠ΄Π°-конструктора. Π¨ΠΈΡ€ΠΎΠΊΠΎΠ΅ распространСниС срСди сообщСства программистов Π½Π° ColdFusion ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» способ Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ‘ init ‘, Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°ΡŽΡ‰Π΅Π³ΠΎ Π² качСствС псСвдоконструктора.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, конструктор Π² PHP вСрсии 4 (ΠΈ Ρ€Π°Π½Π΅Π΅) β€” ΠΌΠ΅Ρ‚ΠΎΠ΄ класса с ΠΈΠΌΠ΅Π½Π΅ΠΌ этого ΠΆΠ΅ класса.

Π£ΠΏΡ€ΠΎΡ‰Π΅Π½Π½Ρ‹Π΅ конструкторы (с псСвдокодом)

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

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

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

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ (ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅)

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

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

Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ языков конструктор ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ΅Π½, Ρ‡Ρ‚ΠΎ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСсколько конструкторов Π² ΠΎΠ΄Π½ΠΎΠΌ классС, ΠΏΡ€ΠΈΡ‡Ρ‘ΠΌ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ конструктор ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹.

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

НазначСниС конструктора

Одна ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… особСнностСй ООП β€” инкапсуляция: Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ поля ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ нСдоступны, ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ°ΠΊ с Π΅Π΄ΠΈΠ½Ρ‹ΠΌ Ρ†Π΅Π»Ρ‹ΠΌ, Ρ‡Π΅Ρ€Π΅Π· ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ ( public ) ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄, Π² ΠΈΠ΄Π΅Π°Π»Π΅, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ устроСн Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, находящийся Π² «допустимом» состоянии (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΊΠΎΠ³Π΄Π° выполняСтся ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ класса), послС Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Ρ‚Π°ΠΊΠΆΠ΅ оказался Π² допустимом состоянии. И пСрвая Π·Π°Π΄Π°Ρ‡Π° конструктора β€” пСрСвСсти поля ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² Ρ‚Π°ΠΊΠΎΠ΅ состояниС.

Но ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π² конструкторС: [1]

Π’ΠΈΠ΄Ρ‹ конструкторов

НСкоторыС языки программирования Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ нСсколько особых Ρ‚ΠΈΠΏΠΎΠ² конструкторов:

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

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

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ копирования

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€, Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ являСтся ссылка Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ класса. ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΠ΅Ρ‚ΡΡ Π² C++ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ.

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

АргумСнт Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎ ссылкС, Π° Π½Π΅ ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ. Π­Ρ‚ΠΎ Π²Ρ‹Ρ‚Π΅ΠΊΠ°Π΅Ρ‚ ΠΈΠ· ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΈ: ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ (Π² частности, для Π²Ρ‹Π·ΠΎΠ²Π° конструктора) трСбуСтся ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. Но для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ конструктор копирования.

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ прСобразования

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΉ ΠΎΠ΄ΠΈΠ½ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚. Π—Π°Π΄Π°Ρ‘Ρ‚ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° своСго Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Π² Ρ‚ΠΈΠΏ конструктора. Π’Π°ΠΊΠΎΠ΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° нСявно примСняСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли ΠΎΠ½ΠΎ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎ.

Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ конструктор

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ Π½Π΅ Π±Ρ‹Π²Π°Π΅Ρ‚ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π² смыслС Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° β€” для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Π°Π», Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ конструктор, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ автоматичСски настроит Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

Β«Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ конструкторами» Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ, Π½ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ, ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… языках β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠ½ Π΅ΡΡ‚ΡŒ Π² Delphi, Π½ΠΎ Π½Π΅Ρ‚ Π² C++ ΠΈ Java. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ позволяСт ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ любого Π·Π°Ρ€Π°Π½Π΅Π΅ нСизвСстного класса ΠΏΡ€ΠΈ Π΄Π²ΡƒΡ… условиях:

являСтся Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΌ β€” Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° reintroduce Ρ€Π°Π·ΠΎΡ€Π²Π°Π»Π° Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ пСрСопрСдСлСния Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, ΠΈ Π² Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Π²Π°Π½ конструктор TMotorcycle.Create (Π° Π·Π½Π°Ρ‡ΠΈΡ‚, Π±ΡƒΠ΄Π΅Ρ‚ создан ΠΌΠΎΡ‚ΠΎΡ†ΠΈΠΊΠ», Π° Π½Π΅ ΠΌΠΎΠΏΠ΅Π΄!)

Бинтаксис

Имя конструктора Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ с ΠΈΠΌΠ΅Π½Π΅ΠΌ класса. ДопускаСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСсколько конструкторов с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ, Π½ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Python

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Delphi

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

НСкоторыС отличия ΠΌΠ΅ΠΆΠ΄Ρƒ конструкторами ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ Java:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

JavaScript

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Π­ΠΉΡ„Π΅Π»ΡŒ

Π’ Π­ΠΉΡ„Π΅Π»Π΅ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°ΠΌΠΈ создания. ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ создания Π² Ρ‡Ρ‘ΠΌ-Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ конструкторам ΠΈ Π² Ρ‡Ρ‘ΠΌ-Ρ‚ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ. Они ΠΈΠΌΠ΅ΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ характСристики:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

ColdFusion

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

НСобходимо ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² ColdFusion Π½Π΅ сущСствуСт ΠΌΠ΅Ρ‚ΠΎΠ΄Π°-конструктора. Π¨ΠΈΡ€ΠΎΠΊΠΎΠ΅ распространСниС срСди сообщСства программистов Π½Π° ColdFusion ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» способ Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ‘ init ‘, Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°ΡŽΡ‰Π΅Π³ΠΎ Π² качСствС псСвдоконструктора.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, конструктор Π² PHP вСрсии 4 (ΠΈ Ρ€Π°Π½Π΅Π΅) β€” ΠΌΠ΅Ρ‚ΠΎΠ΄ класса с ΠΈΠΌΠ΅Π½Π΅ΠΌ этого ΠΆΠ΅ класса.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Π’ Perl конструктор Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ bless ΠΊ Π½Π΅ΠΊΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ссылкС Π½Π° Ρ…Π΅Ρˆ):

Но это ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, Π΅ΡΡ‚ΡŒ мноТСство Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Ρ… способов, начиная ΠΎΡ‚ use fields ΠΈ заканчивая Moose.

Π£ΠΏΡ€ΠΎΡ‰Π΅Π½Π½Ρ‹Π΅ конструкторы (с псСвдокодом)

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

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

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

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ слова «конструктор»

Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ конструктор. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ конструктор. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ конструктор. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ конструктор. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ конструктор

1. Π’ΠΎΡ‚, ΠΊΡ‚ΠΎ конструируСт Ρ‡Ρ‚ΠΎ-Π»., создаСт ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ Ρ‡Π΅Π³ΠΎ-Π».

2. Набор частСй, Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄Π΅Ρ‚ΠΈ строят Ρ€Π°Π·Π½Ρ‹Π΅ сооруТСния.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ (пСчатная вСрсия): Π‘Π»ΠΎΠ²Π°Ρ€ΡŒ русского языка: Π’ 4-Ρ… Ρ‚. / РАН, Ин-Ρ‚ лингвистич. исслСдований; Под Ρ€Π΅Π΄. А. П. Π•Π²Π³Π΅Π½ΡŒΠ΅Π²ΠΎΠΉ. β€” 4-Π΅ ΠΈΠ·Π΄., стСр. β€” М.: Рус. яз.; ΠŸΠΎΠ»ΠΈΠ³Ρ€Π°Ρ„Ρ€Π΅ΡΡƒΡ€ΡΡ‹, 1999; (элСктронная вСрсия): Π€ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ элСктронная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΜΠΊΡ‚ΠΎΡ€ (ΠΎΡ‚ Π»Π°Ρ‚. constructor β€” Β«ΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΒ»):

Π˜Π½ΠΆΠ΅Π½Π΅Ρ€-конструктор β€” инТСнСрная ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ (ΠΈΠ³Ρ€ΡƒΡˆΠΊΠ°) β€” дСтский ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠΉ Π½Π°Π±ΠΎΡ€ для модСлирования, состоящий ΠΈΠ· Π½Π°Π±ΠΎΡ€Π° Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ ΠΈ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… элСмСнтов.

Радиоконструктор β€” Π½Π°Π±ΠΎΡ€ Ρ€Π°Π΄ΠΈΠΎΠ΄Π΅Ρ‚Π°Π»Π΅ΠΉ для ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ сборки ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ элСктронного устройства.

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ ΠΈΠ³Ρ€ β€” ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π°Ρ Π² сСбя Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ инструмСнты для создания ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Ρ… ΠΈΠ³Ρ€.

Β«ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€Β» β€” стороТСвой ΠΊΠΎΡ€Π°Π±Π»ΡŒ Π’ΠœΠ€ Π‘Π‘Π‘Π .

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ (ΠΈΠΌΠΏΠΎΡ€Ρ‚ Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»Π΅ΠΉ) β€” ΠΈΠΌΠΏΠΎΡ€Ρ‚ ΠΏΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½Ρ‹Ρ… Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»Π΅ΠΉ Π² Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ сборкой.

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

β€” конструктор (конструктор класса) β€” ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ компонСнтная функция, автоматичСски вызываСмая ΠΏΡ€ΠΈ создании ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° класса для Π΅Π³ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

Π’ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ Ρ‚ΠΈΠΏΠΎΠ² ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… языках программирования:

β€” конструктор (ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΈΡ€ΡƒΡŽΡ‰Π°Ρ функция) β€” функция с пустым Ρ‚Π΅Π»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΈΡ€ΡƒΡŽΡ‰Π°Ρ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ алгСбраичСского Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ….

β€” конструктор Ρ‚ΠΈΠΏΠΎΠ² β€” конструкция Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ языка, которая строит Π½ΠΎΠ²Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ ΠΈΠ· старых.

КОНБВРУ’КВОР, Π°, ΠΌ. (спСц.). 1. Автор ΠΊΠ°ΠΊΠΎΠΉ-Π½. конструкции. К. ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½ΠΎΠΉ Π»ΠΎΠ΄ΠΊΠΈ. 2. ΠžΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ дСтская ΠΈΠ³Ρ€Π° β€” ящик с ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°ΠΌΠΈ, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄Π΅Ρ‚ΡŒΠΌΠΈ строятся Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Ρ‹, сооруТСния ΠΈ Ρ‚. ΠΏ. (Π½ΠΎΠ².).

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: Β«Π’ΠΎΠ»ΠΊΠΎΠ²Ρ‹ΠΉ ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ русского языка» ΠΏΠΎΠ΄ Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΠ΅ΠΉ Π”. Н. Ушакова (1935-1940); (элСктронная вСрсия): Π€ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ элСктронная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°

констру́ктор I

1. спСциалист, ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Ρ‡Ρ‚ΠΎ-Π»ΠΈΠ±ΠΎ, ΡΠΎΠ·Π΄Π°ΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ Ρ‡Π΅Π³ΠΎ-Π»ΠΈΠ±ΠΎ β—† Π˜Π·Π²Π΅ΡΡ‚Π½Ρ‹ΠΉ конструктор ΠΏΠΎΡ€Π°Π·ΠΈΠ» своим ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ΠΌ.

Π€Ρ€Π°Π·Π΅ΠΎΠ»ΠΎΠ³ΠΈΠ·ΠΌΡ‹ ΠΈ устойчивыС сочСтания

констру́ктор II

1. дСтская ΠΈΠ³Ρ€Π°, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ собою Π½Π°Π±ΠΎΡ€ Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ сооруТСния β—† И ΠΎΠ½Π° ΠΏΠΎΠ²Π΅Π»Π° Π΅Π³ΠΎ Π² «ДСтский ΠΌΠΈΡ€Β», ΠΈ ΠΎΠ½ Π²Ρ‹Π±Ρ€Π°Π» конструктор ― Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΠΎΠΉ, ΠΊΠ°ΠΊ Ρƒ Π˜Π³ΠΎΡ€Ρ с сосСднСй дачи… Анна БСрсСнСва, «Возраст Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΉ любви», 2005 Π³. (Ρ†ΠΈΡ‚Π°Ρ‚Π° ΠΈΠ· НКРЯ)

2. ΠΈΡ€ΠΎΠ½. Ρ‡Ρ‚ΠΎ-Π»ΠΈΠ±ΠΎ, ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅Π΅ΡΡ Π½Π΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΌ ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡŽ, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰Π΅Π΅ сборки ΠΈΠ»ΠΈ Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠΈ β—† ΠŸΠΎΠΊΡƒΠΏΠ°Ρ ΠΎΡ‚Π΅Ρ‡Π΅ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ ― Π²Ρ‹ ΠΏΠΎΠΊΡƒΠΏΠ°Π΅Ρ‚Π΅ маш-Π½Π°Π±ΠΎΡ€, конструктор, Ρ‚Π°ΠΊ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΈ Π½Π΅ стоит ΠΎΠ± этом Π·Π°Π±Ρ‹Π²Π°Ρ‚ΡŒ. Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚

3. ΠΊΠΎΠΌΠΏ. Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ β€” ΠΌΠ΅Ρ‚ΠΎΠ΄ (ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°), вызываСмая для создания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° β—† Если класс содСрТит Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, хотя Π±Ρ‹ ΠΎΠ΄ΠΈΠ½ Π΅Π³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½ ΠΊΠ°ΠΊ конструктор. А. Бтавровский, Β«ΠŸΠ΅Ρ€Π²Ρ‹Π΅ шаги Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈΒ»

4. Π½Π΅ΠΎΠ». Π°Π²Ρ‚ΠΎΠΌΠΎΠ±. ΠΆΠ°Ρ€Π³. Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒ, ΠΏΡ€ΠΈΠ²Π΅Π·Ρ‘Π½Π½Ρ‹ΠΉ Π² Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ ΠΏΠΎ частям β—† «Распилами» ΠΈ «конструкторами» Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ японскиС Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π²Π΅Π·Π»ΠΈ Π½Π° Ρ‚Π΅Ρ€Ρ€ΠΈΡ‚ΠΎΡ€ΠΈΡŽ России Π² качСствС запчастСй, Π° Π·Π°Ρ‚Π΅ΠΌ собрали ΠΈ зарСгистрировали Π² Π“Π˜Π‘Π”Π” ΠΊΠ°ΠΊ транспортныС срСдства. Они появились Π½Π° Π΄ΠΎΡ€ΠΎΠ³Π°Ρ… ΠŸΡ€ΠΈΠΌΠΎΡ€ΡŒΡ Π² 2009 Π³ΠΎΠ΄Ρƒ, послС принятия ΠΏΡ€Π°Π²ΠΈΡ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎΠΌ Π·Π°Π³Ρ€Π°Π΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… пошлин Π½Π° Π²Π²ΠΎΠ· ΠΈΠ½ΠΎΠΌΠ°Ρ€ΠΎΠΊ. Π“Π΅Π½Π½Π°Π΄ΠΈΠΉ Шишкин, ««Распилы» Π² ΠŸΡ€ΠΈΠΌΠΎΡ€ΡŒΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ Π°Π½Π½ΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€ΠΎΡ‡Π½ΠΎΒ» // «РИА Новости», 26 фСвраля 2014 Π³.

Π”Π΅Π»Π°Π΅ΠΌ ΠšΠ°Ρ€Ρ‚Ρƒ слов Π»ΡƒΡ‡ΡˆΠ΅ вмСстС

Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ конструктор. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ конструктор. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ конструктор. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ конструктор. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ΠŸΡ€ΠΈΠ²Π΅Ρ‚! МСня Π·ΠΎΠ²ΡƒΡ‚ Π›Π°ΠΌΠΏΠΎΠ±ΠΎΡ‚, я ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, которая ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠšΠ°Ρ€Ρ‚Ρƒ слов. Π― ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΡƒΠΌΠ΅ΡŽ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Π½ΠΎ ΠΏΠΎΠΊΠ° ΠΏΠ»ΠΎΡ…ΠΎ понимаю, ΠΊΠ°ΠΊ устроСн ваш ΠΌΠΈΡ€. Помоги ΠΌΠ½Π΅ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ!

Бпасибо! Π― стал Ρ‡ΡƒΡ‚ΠΎΡ‡ΠΊΡƒ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΌΠΈΡ€ эмоций.

Вопрос: синкрСтизм β€” это Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π΅ΠΉΡ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ΅, ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΈΠ»ΠΈ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅?

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

Π›Π°Π±ΠΎΡ€Π°Ρ‚ΠΎΡ€Π½Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ (стр. 4 )

Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ конструктор. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ конструктор. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ конструктор. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ конструктор. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€Π˜Π· Π·Π° большого объСма этот ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… страницах:
1 2 3 4

Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ конструктор. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ конструктор. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ конструктор. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ конструктор. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ конструктор

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° manager ΠΈ установка Ρ„Π»Π°Π³Π° f=false (поля ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ Π΅Ρ‰Π΅ Π½Π΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Ρ‹)

Для события Click ΠΊΠ½ΠΎΠΏΠΊΠΈ button2 пишСм ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄:

private void button2_Click(object sender, EventArgs e)

mngr. Name = textBox6.Text;

mngr. Fio = textBox7.Text;

mngr. Seniority = Convert. ToInt32(textBox8.Text);

mngr. Salary = Convert. ToInt32(textBox9.Text);

bordinate = section. Count;

ISalSum iss = (ISalSum)mngr;

mngr. Salarysum = iss. CalcSalSum();

textBox10.Text = mngr. Salarysum. ToString();

else MessageBox. Show(«Π’ ΠΎΡ‚Π΄Π΅Π»Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Π½ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ»);

Π—Π°ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ поля ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° mngr (ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€), создаСтся экзСмпляр класса интСрфСйса ISalSum (ΠΎΠ±ΡŠΠΊΡ‚ iss) ΠΈ расчитываСтся Π·Π°Ρ€ΠΏΠ»Π°Ρ‚Π° ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π°.

Для события Click ΠΊΠ½ΠΎΠΏΠΊΠΈ button1 пишСм ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄:

private void button1_Click(object sender, EventArgs e)

Assistant ass = new Assistant();

bordinate =section. Count+1;

ass. AddAssistant += new EventHandler(mngr. DoEvent);

ass. AddAssistant += new EventHandler(ViewEvent);

ass. Name = textBox1.Text;

ass. Fio = textBox2.Text;

ass. Seniority = Convert. ToInt32(textBox3.Text);

ass. Salary = Convert. ToInt32(textBox5.Text);

ISalSum iss = (ISalSum)ass;

ass. Salarysum = iss. CalcSalSum();

textBox4.Text += ass. Name + » » + ass. Fio + » » + ass. Salary. ToString() + » » + ass. Seniority + » » + ass. Salarysum. ToString() + (char)13 + (char)10;

else MessageBox. Show(«ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ слСдуСт ввСсти ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π΅»);

Для события Click ΠΊΠ½ΠΎΠΏΠΊΠΈ button3 пишСм ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄:

private void button3_Click(object sender, EventArgs e)

foreach (Assistant ass in section)

textBox4.Text += ass. Name + » » + ass. Fio + » » + ass. Salary. ToString() + » » + ass. Seniority + » » + ass. Salarysum. ToString() + (char)13 + (char)10;

Π’Ρ‹Π²ΠΎΠ΄ Π² ΠΎΠΊΠ½ΠΎ text4 списка всСх ΠΏΡ€ΠΎΠ΄Π°Π²Ρ†ΠΎΠ²

Для получСния Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ классов Π² ΠΎΠΊΠ½Π΅ Solution Explorer Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° рисункС 3). Π’ появившСмся контСкстном мСню Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΡƒΠ½ΠΊΡ‚ View Class Diagram.

Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ «класс»? КакиС элСмСнты ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π² составС класса? Каково ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ понятий «класс» ΠΈ Β«ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Β»? Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ Β«Ρ‡Π»Π΅Π½Ρ‹ класса»? КакиС Ρ‡Π»Π΅Π½Ρ‹ класса Π’Π°ΠΌ извСстны? КакиС Ρ‡Π»Π΅Π½Ρ‹ класса содСрТат ΠΊΠΎΠ΄? КакиС Ρ‡Π»Π΅Π½Ρ‹ класса содСрТат Π΄Π°Π½Π½Ρ‹Π΅? Бколько конструкторов ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ класс языка C#? ΠŸΡ€ΠΈΠ²Π΅Π΄ΠΈΡ‚Π΅ синтаксис описания класса Π² ΠΎΠ±Ρ‰Π΅ΠΌ Π²ΠΈΠ΄Π΅. ΠŸΡ€ΠΎΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π΅Π³ΠΎ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° языкС C#. КакиС ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ Ρ‚ΠΈΠΏΠ° доступа Π’Π°ΠΌ извСстны? Π’ Ρ‡Π΅ΠΌ Π·Π°ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ особСнности доступа Ρ‡Π»Π΅Π½ΠΎΠ² класса с ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ public? Π’ Ρ‡Π΅ΠΌ Π·Π°ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ особСнности доступа Ρ‡Π»Π΅Π½ΠΎΠ² класса с ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ private? Π’ Ρ‡Π΅ΠΌ Π·Π°ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ особСнности доступа Ρ‡Π»Π΅Π½ΠΎΠ² класса с ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ protected? Π’ Ρ‡Π΅ΠΌ Π·Π°ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ особСнности доступа Ρ‡Π»Π΅Π½ΠΎΠ² класса с ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ internal? КакоС ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово языка C# ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈ создании ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°? ΠŸΡ€ΠΈΠ²Π΅Π΄ΠΈΡ‚Π΅ синтаксис создания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² ΠΎΠ±Ρ‰Π΅ΠΌ Π²ΠΈΠ΄Π΅. ΠŸΡ€ΠΎΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π΅Π³ΠΎ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° языкС C#. Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ «конструктор»? Π’ Ρ‡Π΅ΠΌ состоит Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ конструктора? ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π»ΠΈ класс языка C# ΠΈΠΌΠ΅Π΅Ρ‚ конструктор? КакиС умолчания для конструкторов приняты Π² языкС C#? Каким Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ значСния ссылочного Ρ‚ΠΈΠΏΠ°? Π’ ΠΊΠ°ΠΊΠΎΠΌ случаС конструктор ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ? ΠŸΡ€ΠΈΠ²Π΅Π΄ΠΈΡ‚Π΅ синтаксис конструктора класса Π² ΠΎΠ±Ρ‰Π΅ΠΌ Π²ΠΈΠ΄Π΅. ΠŸΡ€ΠΎΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π΅Π³ΠΎ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° языкС C#. Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ «дСструктор»? Π’ Ρ‡Π΅ΠΌ состоит Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ дСструктора? ΠŸΡ€ΠΈΠ²Π΅Π΄ΠΈΡ‚Π΅ синтаксис дСструктора класса Π² ΠΎΠ±Ρ‰Π΅ΠΌ Π²ΠΈΠ΄Π΅. ΠŸΡ€ΠΎΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π΅Π³ΠΎ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° языкС C#. Π˜ΠΌΠ΅Π΅Ρ‚ Π»ΠΈ дСструктор ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹? Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π»ΠΈ дСструктор Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅? Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ «наслСдованиС»? Какая классификация ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² соотвСтствуСт наслСдованию? Π§Ρ‚ΠΎ ΠΎΠ±Ρ‰Π΅Π³ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΉ класс с Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ? Π’ Ρ‡Π΅ΠΌ состоит Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΌ ΠΈ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ классами? ΠŸΡ€ΠΈΠ²Π΅Π΄ΠΈΡ‚Π΅ синтаксис описания наслСдования классов Π² ΠΎΠ±Ρ‰Π΅ΠΌ Π²ΠΈΠ΄Π΅. ΠŸΡ€ΠΎΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π΅Π³ΠΎ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° языкС C#. Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ «интСрфСйс»? Π§Π΅ΠΌ отличаСтся синтаксис интСрфСйса ΠΎΡ‚ синтаксиса абстрактного класса? КакоС ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово языка C# ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для описания интСрфСйса? ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Π»ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ интСрфСйса? КакиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ языка C# ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‡Π»Π΅Π½Π°ΠΌΠΈ интСрфСйсов? Каким количСством классов ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ интСрфСйс? ΠœΠΎΠΆΠ΅Ρ‚ Π»ΠΈ класс Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ мноТСствСнныС интСрфСйсы? НСобходима Π»ΠΈ рСализация ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² интСрфСйса Π² классС, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅ΠΌ этот интСрфСйс? Какой ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ доступа соотвСтствуСт интСрфСйсу? Допустимо Π»ΠΈ явноС ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° доступа для интСрфСйса? ΠŸΡ€ΠΈΠ²Π΅Π΄ΠΈΡ‚Π΅ синтаксис интСрфСйса Π² ΠΎΠ±Ρ‰Π΅ΠΌ Π²ΠΈΠ΄Π΅. ΠŸΡ€ΠΎΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π΅Π³ΠΎ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° языкС C#. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ созданиС ссылочной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ интСрфСйсного Ρ‚ΠΈΠΏΠ°? Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ наслСдованиС интСрфСйсов? Насколько синтаксис наслСдования интСрфСйсов отличаСтся ΠΎΡ‚ синтаксиса наслСдования классов? НСобходимо Π»ΠΈ обСспСчСниС Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π² ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ наслСдуСмых интСрфСйсов? Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ Β«Π΄Π΅Π»Π΅Π³Π°Ρ‚Β»? Π’ Ρ‡Π΅ΠΌ состоят прСимущСства использования Π΄Π΅Π»Π΅Π³Π°Ρ‚ΠΎΠ²? Π’ ΠΊΠ°ΠΊΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ осущСствляСтся Π²Ρ‹Π±ΠΎΡ€ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π² случаС использования Π΄Π΅Π»Π΅Π³Π°Ρ‚ΠΎΠ²? Π§Ρ‚ΠΎ являСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π΄Π΅Π»Π΅Π³Π°Ρ‚Π°? КакоС ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово языка C# ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для описания Π΄Π΅Π»Π΅Π³Π°Ρ‚ΠΎΠ²? ΠŸΡ€ΠΈΠ²Π΅Π΄ΠΈΡ‚Π΅ синтаксис Π΄Π΅Π»Π΅Π³Π°Ρ‚Π° Π² ΠΎΠ±Ρ‰Π΅ΠΌ Π²ΠΈΠ΄Π΅. ΠŸΡ€ΠΎΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π΅Π³ΠΎ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° языкС C#. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ использованиС Π΄Π΅Π»Π΅Π³Π°Ρ‚Π° для Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ подписи Π΄Π΅Π»Π΅Π³Π°Ρ‚Π°? Π’ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Π»ΠΈ Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π² Ρ‚ΠΎΠΌ случаС, Ссли Π΅Π³ΠΎ подпись Π½Π΅ соотвСтствуСт подписи Π΄Π΅Π»Π΅Π³Π°Ρ‚Π°? Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ Β«ΠΌΠ½ΠΎΠ³ΠΎΠ°Π΄Ρ€Π΅ΡΠ½ΠΎΡΡ‚ΡŒΒ»? Π’ Ρ‡Π΅ΠΌ состоит практичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ многоадрСсности? Каким ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ осущСствляСтся созданиС Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² для многоадрСсных Π΄Π΅Π»Π΅Π³Π°Ρ‚ΠΎΠ²? КакиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ языка C# ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для создания Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² для многоадрСсных Π΄Π΅Π»Π΅Π³Π°Ρ‚ΠΎΠ²? Каким ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ осущСствляСтся ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² для многоадрСсных Π΄Π΅Π»Π΅Π³Π°Ρ‚ΠΎΠ²? КакиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ языка C# ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для удалСния Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² для многоадрСсных Π΄Π΅Π»Π΅Π³Π°Ρ‚ΠΎΠ²? Каким Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΈΠΏ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния для многоадрСсных Π΄Π΅Π»Π΅Π³Π°Ρ‚ΠΎΠ²? Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ «событиС»? Π―Π²Π»ΡΡŽΡ‚ΡΡ Π»ΠΈ события Ρ‡Π»Π΅Π½Π°ΠΌΠΈ классов? КакоС ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово языка C# ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для описания событий? На ΠΊΠ°ΠΊΠΎΠΌ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ΅ языка C# основана ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° событий? ΠŸΡ€ΠΈΠ²Π΅Π΄ΠΈΡ‚Π΅ синтаксис описания события Π² ΠΎΠ±Ρ‰Π΅ΠΌ Π²ΠΈΠ΄Π΅. ΠŸΡ€ΠΎΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π΅Π³ΠΎ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° языкС C#. Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ Β«ΡˆΠΈΡ€ΠΎΠΊΠΎΠ²Π΅Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ событиС»?

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

ООП – ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ ОсвобоТдСния ΠŸΠ°Π»Π΅ΡΡ‚ΠΈΠ½Ρ‹.
АббрСвиатура.

Π Π΅Π·ΠΎΠ½Π½Ρ‹ΠΉ вопрос – ΠΏΠΎΡ‡Π΅ΠΌΡƒ Ρ‚Π°ΠΊ ΠΏΠΎΠ·Π΄Π½ΠΎ приступаСм ΠΊ знакомству с ООП? Π― Ρ‚ΠΎΠΆΠ΅ ΡΡ‡ΠΈΡ‚Π°ΡŽ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π³Π»Π°Π²Ρ‹ ΠΊΠ½ΠΈΠ³ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±Ρ‹ Π²Ρ‹ΠΈΠ³Ρ€Π°Π»ΠΈ ΠΎΡ‚ ΠΈΡ… излоТСния Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ. Но, сказавши Β«Π°Β», слСдовало Π±Ρ‹ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΈ Β«Π±Β», Ρ‚.Π΅. ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π±Ρ‹ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ·Π»ΠΎΠΆΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ООП, Π° это Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π½Π΅ совсСм ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ:

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

ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π‘ΠΈ прСкрасно ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ срСдствами классичСского Π‘ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²ΠΎΠ΅, Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ Π²Ρ‚ΠΎΡ€ΠΎΠ΅;

всС ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ Π³Π»Π°Π²Ρ‹ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ нСбольшими ΠΏΠΎ ΠΎΠ±ΡŠΠ΅ΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ориСнтированная нотация (ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊΠ°ΠΊ для ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ²) Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Π°;

ООП – это постановка процСсса программирования «с Π½ΠΎΠ³ Π½Π° Π³ΠΎΠ»ΠΎΠ²ΡƒΒ», (ΠΈΠ»ΠΈ с Π³ΠΎΠ»ΠΎΠ²Ρ‹ Π½Π° Π½ΠΎΠ³ΠΈ), Π° это Π»ΡƒΡ‡ΡˆΠ΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅ Π² сСрСдинС излоТСния ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°;

И, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, Ρ‚Π°ΠΊΠΎΠΉ «монстр» ΠΊΠ°ΠΊ Π‘ΠΈ++, ΠΏΡ‹Ρ‚Π°ΡŽΡ‰ΠΈΠΉΡΡ ΡΠΎΡ‡Π΅Ρ‚Π°Ρ‚ΡŒ Π² сСбС всС ΠΈ вся, ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π΅ совсСм ΡƒΠ΄ΠΎΠ±Π½ΡƒΡŽ, излишнС ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡƒΡŽ ΠΈ довольно Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΡƒΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π½ΠΎΡ‚Π°Ρ†ΠΈΡŽ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» слСдуСт Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅ ΠΊ знакомству с Ρ‚ΠΎΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ срСдами ООП, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Java ΠΈΠ»ΠΈ C#.

10.1 ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈ классы

ΠžΠ±ΡŠΠ΅ΠΊΡ‚, ΠΌΠ΅Ρ‚ΠΎΠ΄, класс: опрСдСлСния ΠΈ свойства

«Классами Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ большиС Π³Ρ€ΡƒΠΏΠΏΡ‹ людСй, Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‰ΠΈΠ΅ΡΡ ΠΏΠΎ ΠΈΡ… мСсту Π² историчСски ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Β­Π½ΠΎΠΉ систСмС общСствСнного производства, ΠΏΠΎ ΠΈΡ… ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ) ΠΊ срСдствам произ­водства, ΠΏΠΎ ΠΈΡ… Ρ€ΠΎΠ»ΠΈ Π² общСствСнной ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‚Ρ€ΡƒΠ΄Π°, Π° ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΒ­Π½ΠΎ, ΠΏΠΎ способам получСния ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌ Ρ‚ΠΎΠΉ Π΄ΠΎΠ»ΠΈ общСствСнного богатства, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½ΠΈ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚Β» ЛСнинскоС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ классов.

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

ΠŸΡ€ΠΎΠΏΠΈΡΠ½Ρ‹Π΅ истины ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°

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

для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° создаСтся экзСмпляр Π΄Π°Π½Π½Ρ‹Ρ…;

ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ класса, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой СдинствСнный экзСмпляр ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π² сСгмСнтС ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ выполняСтся для всСх ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (раздСляСтся ΠΈΠΌΠΈ);

ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΠ½ выполняСтся, идСнтифицируСтся ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΌ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° this, Π·Π°Π΄Π°ΡŽΡ‰ΠΈΠΌ контСкст Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, связка Β«ΠΎΠ±ΡŠΠ΅ΠΊΡ‚-ΠΌΠ΅Ρ‚ΠΎΠ΄Β» прСобразуСтся Π² Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ дСйствий: Β«Π²Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ – ΠΌΠ΅Ρ‚ΠΎΠ΄Π° класса с фактичСским ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ – ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΌ Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Β».

public: void F() < a++; >// void A::F(A *this) < this->a++; >

Ссли элСмСнты Π΄Π°Π½Π½Ρ‹Ρ… класса ΠΈΠΌΠ΅ΡŽΡ‚ взаимосвязанныС значСния, Ρ‚ΠΎ класс Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ установлСнныС для Π½ΠΈΡ… соглашСния;

Ссли ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π΄Π°Π½Π½Ρ‹Ρ… класса ссылаСтся Π½Π° внСшниС структуры Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚ΠΎ ΠΏΡ€ΠΈ синтаксичСском ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ связанной структуры Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅-ΠΊΠΎΠΏΠΈΠΈ (ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π΅Π΅ копию ΠΈΠ»ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ – см. «конструктор копирования»;

Ссли ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ содСрТит ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ Π²Π½Π΅ΡˆΠ½ΠΈΡ… рСсурсов (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½ΠΎΠΌΠ΅Ρ€ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΏΠΎΡ€Ρ‚Π°), Ρ‚ΠΎ дСйствия класса Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌΠΈ.

Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ конструктор. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ конструктор. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ конструктор. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ конструктор. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ конструктор
рис. 101-1. ΠžΠ±ΡŠΠ΅ΠΊΡ‚: Π³Ρ€Π°Π½ΠΈΡ†Π° отвСтствСнности транслятора ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

double * pd ; // ВнутрСнняя Π‘Π” – Π΄ΠΈΠ½. массив коэффициСнтов

public : void add ( double D 2[], int n 2)<> // ΠΠ°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ закрытости – ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ – внутрСнняя Π‘Π”

void add ( poly & T )<> // ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ: ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ – ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ класса

По ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ интСрфСйс класса (Π½Π°Π±ΠΎΡ€ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²) Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ максимально Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π΅Π½, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΡ‡Π΅Ρ‚Π°Ρ‚ΡŒΡΡ Π² Π»ΡŽΠ±Ρ‹Ρ… комбинациях, давая ΡˆΠΈΡ€ΠΎΠΊΠΎΠ΅ Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·ΠΈΠ΅ возмоТностСй Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ.

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

double * pd ; // ВнутрСнняя Π‘Π” – Π΄ΠΈΠ½. массив коэффициСнтов

public : poly () < n =0; pd = NULL ; >// ΠΠ΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ: NULL – отсутствиС массива

Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ конструктор. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ конструктор. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ конструктор. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ конструктор. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€Β«Π›ΠΎΠΆΠ°ΡΡŒ ΡΠΏΠ°Ρ‚ΡŒ, программист ставит рядом Π΄Π²Π° стакана: ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ»Π½Ρ‹ΠΉ – Ссли Π·Π°Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΏΠΈΡ‚ΡŒ, ΠΈ ΠΎΠ΄ΠΈΠ½ пустой – Ссли Π½Π΅ Π·Π°Ρ…ΠΎΡ‡Π΅Ρ‚Β». АнСкдот Π² Ρ‚Π΅ΠΌΡƒ.

// Класс стСпСнного ΠΏΠΎΠ»ΠΈΠ½ΠΎΠΌΠ° – Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ класса (объявлСниС)

int n; // ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ ΠΏΠΎΠ»ΠΈΠ½ΠΎΠΌΠ°

double *pd; // динамичСский массив коэффициСнтов

double & get ( int k ); // ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ссылки Π½Π° коэффициСнт

void add ( poly & T ); // слоТСниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (1=1+2)

void mul ( poly & T ); // ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (1=1+2)

Π¦Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€. ДСструктор

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

«. Если конструктор ΠΈΠΌΠ΅Π΅Ρ‚ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, Ρ‚ΠΎ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° послС Π΅Π΅ ΠΈΠΌΠ΅Π½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² скобках значСния фактичСских ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

// Класс стСпСнного ΠΏΠΎΠ»ΠΈΠ½ΠΎΠΌΠ° – конструкторы ΠΈ дСструктор

int n; // ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ ΠΏΠΎΠ»ΠΈΠ½ΠΎΠΌΠ°

double *pd; // динамичСский массив коэффициСнтов

n=0; // с Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌ коэффициСнтом

n=m; // с Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌΠΈ коэффициСнтами

load(n0,p); > // ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ load

load(T.n, T.pd); > // (конструктор копирования)

ΠœΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ‹Π·ΠΎΠ²Π° конструктора ΠΈ дСструктора опрСдСляСтся Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ создания ΠΈ уничтоТСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²:

Π’ Π‘ΠΈ++ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ массива ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² класса. ΠŸΡ€ΠΈ этом конструктор ΠΈ дСструктор автоматичСски Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² Ρ†ΠΈΠΊΠ»Π΅ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта массива ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° delete для указатСля Π½Π° массив ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΡΡ‚ΡŒ скобками.

poly a,b(6), c (3, D ); // БтатичСскиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ – конструкторы

// пустой ΠΏΠΎΠ»ΠΈΠ½ΠΎΠΌ, Π·Π°Π΄Π°Π½Π½ΠΎΠΉ размСрности ΠΈ ΠΈΠ· массива

poly *p,* q ; // Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚

poly c,d( c ); // АвтоматичСскиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹

p = new poly ; // ДинамичСский ΠΎΠ±ΡŠΠ΅ΠΊΡ‚

q = new poly [ n ]; // ДинамичСский массив ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²

delete p; // Π£Π½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½ΠΈΠ΅ динамичСского ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

delete [] q ; // Π£Π½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½ΠΈΠ΅ динамичСского массива ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²

> // Π£Π½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½ΠΈΠ΅ автоматичСских ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²

Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: процСсс конструирования Β«Π²Π»ΠΎΠΆΠ΅Π½Β» Π² процСсс Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ памяти ΠΏΠΎΠ΄ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ вызываСтся сразу ΠΆΠ΅ послС выдСлСния памяти, Π° дСструктор – ΠΏΠ΅Ρ€Π΅Π΄ Π΅Π΅ освобоТдСниСм.

A(int a1) // ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€

Класс – структурированный Ρ‚ΠΈΠΏ с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌ доступом

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

Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ конструктор. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ конструктор. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ конструктор. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ конструктор. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ конструктор

Π’ процСссС программирования класса ΡƒΡ‡Π°ΡΡ‚Π²ΡƒΡŽΡ‚ Π΄Π²Π° Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π»ΠΈΡ†Π° с Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠ΅Ρ‚Π΅Π½Ρ†ΠΈΠ΅ΠΉ: Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ класса, ΠΏΠΈΡˆΡƒΡ‰ΠΈΠΉ Π΅Π³ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ ΠΊΠΎΠ΄, ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ класса – программист, ΡΠΎΠ·Π΄Π°ΡŽΡ‰ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ этого класса ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ для Π½ΠΈΡ… Π΅Π³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. Но ограничСния ΠΊΠ°ΡΠ°ΡŽΡ‚ΡΡ Π½Π΅ самих программистов, Π° ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½ΠΈ ΡΠΎΠ·Π΄Π°ΡŽΡ‚. Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ класса – это Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ находится Π² Ρ‚Π΅Π»Π΅ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ класса (Ρ‚ΠΎΡ‡Π½Π΅Π΅, Π² Ρ‚Π΅Π»Π΅ Π΅Π³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²). Π’Π½Π΅ΡˆΠ½Π΅Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ – это Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΊΠΎΠ΄Π° Π²Π½Π΅ Ρ‚Π΅Π»Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ класса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ создаСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ класса, Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ этих ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹.

Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ класс отличаСтся ΠΎΡ‚ структурированного Ρ‚ΠΈΠΏΠ° ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом class (вмСсто struct ) ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ΠΌ Π΄Π²ΡƒΡ… областСй доступа Π² Ρ‚Π΅Π»Π΅ класса:

закрытая (личная) Ρ‡Π°ΡΡ‚ΡŒ, допускаСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π·Π°ΠΊΡ€Ρ‹Ρ‚Π° ΠΏΡ€ΠΈ доступС Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π²Π½Π΅ класса. По ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ синтаксиса закрытая Ρ‡Π°ΡΡ‚ΡŒ начинаСтся сразу ΠΆΠ΅ вслСд Π·Π° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ класса. Она Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½Π° ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ private;

открытая (общая) Ρ‡Π°ΡΡ‚ΡŒ класса допускаСт любой доступ, Π² Ρ‚ΠΎΠΌ числС ΠΈ внСшний. Она всСгда явно обозначаСтся ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ public.

// Класс стСпСнного ΠΏΠΎΠ»ΠΈΠ½ΠΎΠΌΠ°

int n; // ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ ΠΏΠΎΠ»ΠΈΠ½ΠΎΠΌΠ°

double *pd; // динамичСский массив коэффициСнтов

public:… // ΠΌΠ΅Ρ‚ΠΊΠ° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΉ части

Π”Ρ€ΡƒΠ³ΠΈΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ размСщСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π² Π»ΠΈΡ‡Π½ΠΎΠΉ ΠΈ ΠΎΠ±Ρ‰Π΅ΠΉ части класса Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ Ρ€Π΅ΠΆΠ΅, Π½ΠΎ Ρ‚ΠΎΠΆΠ΅ обоснованы:

Π² ΠΎΠ±Ρ‰Π΅ΠΉ части класса ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Ρ‹ Π΄Π°Π½Π½Ρ‹Π΅, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ класса Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ катастрофичСским послСдствиям (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ†Π²Π΅Ρ‚ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹). ЕстСствСнно, Ρ‡Ρ‚ΠΎ класс Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ этих Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ пСрСрисовкС Ρ„ΠΈΠ³ΡƒΡ€Ρ‹);

Π² Π»ΠΈΡ‡Π½ΠΎΠΉ части класса ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ самого класса. Π­Ρ‚ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ дСйствия, вынСсСнныС Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², Π»ΠΈΠ±ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… дСйствий.

Иногда трСбуСтся ввСсти ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈΠ· ΠΏΡ€Π°Π²ΠΈΠ» доступа, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ классу трСбуСтся Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ доступ ΠΊ Π»ΠΈΡ‡Π½ΠΎΠΉ части ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° класса. Π’ΠΎΠ³Π΄Π° Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ класса, ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ Ρ‚Π°ΠΊΠΎΠΉ доступ, Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ объявлСниС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ класса ΠΊΠ°ΠΊ «друТСствСнных». Π­Ρ‚ΠΎ согласуСтся с Ρ‚Π΅ΠΌ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠΌ, Ρ‡Ρ‚ΠΎ сам класс опрСдСляСт ΠΏΡ€Π°Π²Π° доступа ΠΊ своим ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ «со стороны».

ОбъявлСниС друТСствСнной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ прСдставляСт собой ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, пСрСопрСдСляСмой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ имя класса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ доступ, ΠΏΡ€Π΅Π΄Π²Π°Ρ€Π΅Π½Π½ΠΎΠ΅ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом friend.

// ΠšΠ»Π°ΡΡΡ‹ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, друТСствСнныС классу A

int x; // Личная Ρ‡Π°ΡΡ‚ΡŒ класса

. // ВсС Β«Π΄Ρ€ΡƒΠ·ΡŒΡΒ» ΠΈΠΌΠ΅ΡŽΡ‚ доступ ΠΊ x

friend void C::operator+( А &);

Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ конструктор. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ конструктор. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ конструктор. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ конструктор. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ конструктор«Друг – это Ρ‚ΠΎΡ‚, ΠΊΡ‚ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΎ Π»Π΅Π·Ρ‚ΡŒ Ρ‚Π΅Π±Π΅ Π² Π΄ΡƒΡˆΡƒ (Π»ΠΈΡ‡Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ) Π² любоС врСмя».

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

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

// Класс стСпСнного ΠΏΠΎΠ»ΠΈΠ½ΠΎΠΌΠ°

int n; // ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ ΠΏΠΎΠ»ΠΈΠ½ΠΎΠΌΠ°

double *pd; // динамичСский массив коэффициСнтов

void load(int n0, double p[])<

n=n0; // Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ массива

double *pd1=new double[n1+1];

for (; i n 1; i ++) pd 1[ i ]=0;// ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ΡΡ‚Π°Ρ€ΡˆΠΈΠ΅ коэффициСнты нулями

delete []pd; // ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ старый массив

pd=pd1; // ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ Π·Π° старый

> // ΠΏΠ°ΠΌΡΡ‚ΡŒ Π½Π΅ пСрСраспрСдСляСтся

public :… // ΠΌΠ΅Ρ‚ΠΊΠ° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΉ части

Рассмотрим Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΌΠ΅Ρ‚ΠΎΠ΄, интСрСсный с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ закрытости. ΠœΠ΅Ρ‚ΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ссылку Π½Π° Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ коэффициСнт ΠΏΠΎΠ»ΠΈΠ½ΠΎΠΌΠ°, Ρ‡Ρ‚ΠΎ позволяСт Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π½ΠΈΠΌ ΠΊΠ°ΠΊ ΠΏΠΎ Ρ‡Ρ‚Π΅Π½ΠΈΡŽ, Ρ‚Π°ΠΊ ΠΈ ΠΏΠΎ записи. Π₯отя это Β«ΠΏΡ€ΠΈΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚Β» доступ ΠΊ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌ Π΄Π°Π½Π½Ρ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π½ΠΎ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ΅ использованиС этой ссылки Β«Π²ΠΎ Π²Ρ€Π΅Π΄ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΡƒΒ» ΠΈ доступ Ρ‡Π΅Ρ€Π΅Π· Π½Π΅Π΅ ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ коэффициСнтам Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ большого искусства ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΎ Π½Π΅ΡΠΎΠ·Π½Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ (ΠΏΠΎ ошибкС). ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Ρ‚Π°ΠΊΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ бСзопасной.

// Класс стСпСнного ΠΏΠΎΠ»ΠΈΠ½ΠΎΠΌΠ°

int n; // ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ ΠΏΠΎΠ»ΠΈΠ½ΠΎΠΌΠ°

double *pd; // динамичСский массив коэффициСнтов

if ( k k > n ) return foo ; // Π½Π° «Π»Π΅Π²ΡƒΡŽ» ΡΡ‚Π°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ

ВзаимодСйствиС Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π² ООП

Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ конструктор. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ конструктор. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ конструктор. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ конструктор. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ конструктор

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

Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ конструктор. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ конструктор. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ конструктор. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ конструктор. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ конструктор
рис.101-4. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅ Β«ΠΎΠ±ΡŠΠ΅ΠΊΡ‚-ΠΌΠ΅Ρ‚ΠΎΠ΄-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Β»

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ³ΠΎ проСктирования Π² Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ООП

Β· Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ конструкций языка, ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°ΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ Ρ‚ΠΈΠΏΠΎΠ², объявлСний ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° класса;

Β· Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ класса ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ объявлСниС ΠΌΠ΅Ρ‚ΠΎΠ΄Π° – Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ со списком Ρ‚ΠΈΠΏΠΎΠ² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² (ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ), ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ с запятой. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½ΠΈΠΊΠ΅ упоминаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„Π°ΠΊΡ‚ Π΅Π³ΠΎ наличия (с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΈ интСрфСйсом). Π’ΠΎΠ³Π΄Π° Π² Ρ„Π°ΠΉΠ»Π΅ Ρ‚Π΅Π»Π° класса Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, содСрТащСС Π΅Π³ΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΈ Ρ‚Π΅Π»ΠΎ. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ повторяСт объявлСниС с ΠΎΠ΄Π½ΠΈΠΌ малСньким ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ΠΌ: имя ΠΌΠ΅Ρ‚ΠΎΠ΄Π° даСтся Π² ΠΏΠΎΠ»Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ Π² Π²ΠΈΠ΄Π΅ имя_класса::имя_ΠΌΠ΅Ρ‚ΠΎΠ΄Π°;

Β· Ρ„Π°ΠΉΠ» Ρ‚Π΅Π»Π° класса Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ свой Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²ΠΎΠΉ include ;

Β· для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Ρ€ΡƒΠ³ΠΎΠΉ класс ΠΈΠ»ΠΈ main ΠΌΠΎΠ³Π»ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ класса ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΊ Π½ΠΈΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²ΠΎΠΉ include ;

Β· всС ΠΈΠΌΠ΅Π½Π° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² Ρ‚Π΅Π»Π° класса Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚;

int a; // Π”Π°Π½Π½Ρ‹Π΅ класса

void add ( A &); // ОбъявлСниС (ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ) ΠΌΠ΅Ρ‚ΠΎΠ΄Π°

A mul ( A &); // ОбъявлСниС (ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ) ΠΌΠ΅Ρ‚ΠΎΠ΄Π°

ЕстСствСнно, Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ Π·Π°ΠΏΡ€Π΅Ρ‰Π°Π΅Ρ‚ Β«ΡΠ²Π°Π»ΠΈΡ‚ΡŒ всС классы Π² ΠΎΠ΄Π½Ρƒ ΠΊΡƒΡ‡ΡƒΒ», Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Для Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ это ΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Π½ΠΎ Π½Π΅ эстСтично.

Π›Π°Π±ΠΎΡ€Π°Ρ‚ΠΎΡ€Π½Ρ‹ΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒΠΌ

1. ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ Π΄Ρ€ΠΎΠ±ΡŒ, прСдставлСнная Ρ†Π΅Π»ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ, числитСлСм ΠΈ Π·Π½Π°ΠΌΠ΅Π½Π°Ρ‚Π΅Π»Π΅ΠΌ.

4. Π¦Π΅Π»ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ число, прСдставлСнноС Π² Π²ΠΈΠ΄Π΅ массива Π΅Π³ΠΎ простых ΠΌΠ½ΠΎΠΆΠΈΡ‚Π΅Π»Π΅ΠΉ (ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄Π°Π΅Ρ‚ это число).

5. Π¦Π΅Π»ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ число, прСдставлСнноС Π² Π²ΠΈΠ΄Π΅ массива остатков ΠΎΡ‚ дСлСния Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹Π΅ n 6. Π’Π΅ΠΊΡ‚ΠΎΡ€ Π½Π° плоскости, прСдставлСнный Π² полярной систСмС ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ (Π΄Π»ΠΈΠ½Π°, ΡƒΠ³ΠΎΠ» ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π°).

8. ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ размСрности, прСдставлСнная динамичСским массивом ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° строки ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ (Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹Π΅ динамичСскиС массивы).

9. ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ размСрности, прСдставлСнная динамичСским массивом, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ строки ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ располоТСны ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄Ρ€ΡƒΠ³ Π·Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ.

10. РазрСТСнная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ размСрности, Π½Π΅Π½ΡƒΠ»Π΅Π²Ρ‹Π΅ коэффициСнты прСдставлСны динамичСским массивом с элСмСнтами (x,y,v) ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

11. РазрСТСнная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ размСрности, Π½Π΅Π½ΡƒΠ»Π΅Π²Ρ‹Π΅ коэффициСнты прСдставлСны односвязным списком с элСмСнтами (x,y,v) ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

12. РазрСТСнная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ размСрности, Π½Π΅Π½ΡƒΠ»Π΅Π²Ρ‹Π΅ коэффициСнты прСдставлСны двусвязным цикличСским списком с элСмСнтами (x,y,v) ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

13. ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ, элСмСнтами ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ†Π΅Π»Ρ‹Π΅ числа. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ объСдинСния ΠΈ пСрСсСчСния мноТСств, добавлСния элСмСнта, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅, разности мноТСств.

14. Π¦Π΅Π»Ρ‹Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹ со Π·Π½Π°ΠΊΠΎΠΌ Π²ΠΎ внСшнСй Ρ„ΠΎΡ€ΠΌΠ΅ прСдставлСния Π² Π²ΠΈΠ΄Π΅ строки Ρ†ΠΈΡ„Ρ€ Π² прямом ΠΊΠΎΠ΄Π΅. Π—Π½Π°ΠΊ прСдставлСн ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ элСмСнтом Π΄Π°Π½Π½Ρ‹Ρ….

15. Π¦Π΅Π»Ρ‹Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹ со Π·Π½Π°ΠΊΠΎΠΌ Π²ΠΎ внСшнСй Ρ„ΠΎΡ€ΠΌΠ΅ прСдставлСния Π² Π²ΠΈΠ΄Π΅ строки Ρ†ΠΈΡ„Ρ€ Π² прямом ΠΊΠΎΠ΄Π΅. Π—Π½Π°ΠΊ прСдставлСн ΡΡ‚Π°Ρ€ΡˆΠ΅ΠΉ Ρ†ΠΈΡ„Ρ€ΠΎΠΉ (0 /1).

16. Π¦Π΅Π»Ρ‹Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹ со Π·Π½Π°ΠΊΠΎΠΌ Π²ΠΎ внСшнСй Ρ„ΠΎΡ€ΠΌΠ΅ прСдставлСния Π² Π²ΠΈΠ΄Π΅ строки Ρ†ΠΈΡ„Ρ€ Π² Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΊΠΎΠ΄Π΅.

17. Π¦Π΅Π»Ρ‹Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹ Π²ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΌ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌ прСдставлСнии (динамичСский массив Π±Π°ΠΉΡ‚ΠΎΠ²) Π² прямом ΠΊΠΎΠ΄Π΅. Π—Π½Π°ΠΊ прСдставлСн ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ элСмСнтом Π΄Π°Π½Π½Ρ‹Ρ….

18. Π¦Π΅Π»Ρ‹Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹ Π²ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΌ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌ прСдставлСнии (динамичСский массив Π±Π°ΠΉΡ‚ΠΎΠ²) Π² Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΊΠΎΠ΄Π΅.

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

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

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