Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«C++Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 37

Автор ΠœΡŽΡ€Ρ€Π΅ΠΉ Π₯ΠΈΠ»Π»

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

ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΊΠΎΡ€ΠΎΡ‡Π΅ ΠΈΠΌΠ΅Π½ Π΄Ρ€ΡƒΠ·Π΅ΠΉ.

6.11 ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π΅Ρ€Π΅ΠΆΠ΅Π½ΠΈΠ΅

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

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

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

6.12 УпраТнСния

1. (*2) ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ для класса string. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ + ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ Β«Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΠΊΠΎΠ½Π΅Ρ†Β» +=. КакиС Π΅Ρ‰Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ string Π²Ρ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ?

2. (*1.5) Π—Π°Π΄Π°ΠΉΡ‚Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠΈ () ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ выдСлния подстроки для класса строк.

3. (*3) ΠŸΠΎΡΡ‚Ρ€ΠΎΠΉΡ‚Π΅ класс string Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ опСрация выдСлния подстроки ΠΌΠΎΠ³Π»Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² Π»Π΅Π²ΠΎΠΉ части присвивания. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ сначала Π²Π΅Ρ€ΡΠΈΡŽ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ строка ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒΡΡ подстрокС Ρ‚ΠΎΠΉ ΠΆΠ΅ Π΄Π»ΠΈΠ½Ρ‹, Π° ΠΏΠΎΡ‚ΠΎΠΌ Π²Π΅Ρ€ΡΠΈΡŽ, Π³Π΄Π΅ эти Π΄Π»ΠΈΠ½Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ.

4. (*2) ΠŸΠΎΡΡ‚Ρ€ΠΎΠΉΡ‚Π΅ класс string Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ для присваивания, ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈ Ρ‚.ΠΏ. ΠΎΠ½ ΠΈΠΌΠ΅Π» сСмантику ΠΏΠΎ Π·Π½Π°Ρ‡Π½ΠΈΡŽ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° копируСтся строковоС прСдставлСниС, Π° Π½Π΅ просто ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π°Ρ структура Π΄Π°Π½Π½Ρ‹Ρ… класса sring.

5. (*3) ΠœΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠΉΡ‚Π΅ класс string ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ строка ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π»Π°ΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠ³Π΄Π° это Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ. Π’ΠΎ Π΅ΡΡ‚ΡŒ, Ρ…Ρ€Π°Π½ΠΈΡ‚Π΅ совмСстно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ΅ прСдставлСниС Π΄Π²ΡƒΡ… строк, ΠΏΠΎΠΊΠ° ΠΎΠ΄Π½Π° ΠΈΠ· этих строк Π½Π΅ Π±Π΄Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π°. НС ΠΏΡ‹Ρ‚Π°ΠΉΡ‚Π΅ΡΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ с этим ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ выдСлСния подстроки, которая ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·Π²Π°Ρ‚ΡŒΡΡ Π² Π»Π΅Π²ΠΎΠΉ части.

6. (*4) Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°ΠΉΡ‚Π΅ класс string с сСмантикой ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ, ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ с Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ подстроки, которая ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚ΠΎΡΡ‚ΡŒ Π² Π»Π΅Π²ΠΎΠΉ части.

7. (*2) КакиС прСобразования ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π²Ρ‹Ρ€Π°ΠΆΠ½ΠΈΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

struct X (* int i; X(int); operator+(int); *);

struct Y (* int i; Y(X); operator+(X); operator int(); *);

X operator* (X,Y); int f(X);

X x = 1; Y y = x; int i = 2;

main() (* i + 10; y + 10; y + 10 * y; x + y + i; x * x + i; f(7); f(y); y + y; 106 + y; *)

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ X ΠΈ Y Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ ΠΎΠ±Π° Π±Ρ‹Π»ΠΈ Ρ†Π΅Π»Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ. Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π° Ρ€Π°Π±ΠΎΡ‚Π°Π»Π° ΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π»Π° значСния всСх допустимых Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ.

8. (*2) ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ класс INT, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Π΅Π΄Π΅Ρ‚ сСбя Π² точности ΠΊΠ°ΠΊ int. Подсказка: ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ INT::operator int().

9. (*1) ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ класс RINT, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Π΅Π΄Π΅Ρ‚ сСбя Π² Ρ‚ΠΎΡ‡Π½ΠΎΡ‚ΠΈ ΠΊΠ°ΠΊ int Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ СдинствСнныС Π²ΠΎΠ·ΠΌΠΎΠ½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ – это + (ΡƒΠ½Π°Ρ€Π½Ρ‹ΠΉ ΠΈ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ), β€“ (ΡƒΠ½Π°Ρ€Π½Ρ‹ΠΉ ΠΈ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ), *, /, %. Подсказка: Π½Π΅ опрСдСляйтС INT::operator int().

10. (*3) ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ класс LINT, Π²Π΅Π΄ΡƒΡ‰ΠΈΠΉ сСбя ΠΊΠ°ΠΊ RINT, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 64 Π±ΠΈΡ‚.

11. (*4) ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ класс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΡƒ с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΉ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ. Подсказка: Π²Π°ΠΌ Π½Π°Π΄ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ Ρ‚ΠΎΠΌΡƒ, ΠΊΠ°ΠΊ это дСлалось для класса string.

12. (*2) ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π΄ΠΎΠ²Π΅Π΄Π΅Π½Π½ΡƒΡŽ Π΄ΠΎ Π½Π΅Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΠ³ΠΎ сотояния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ макросов ΠΈ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. Π’ΠΎΡ‚ идСя: ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ для INT + Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ ΠΎΠ·Π½Π°Ρ‡Π°Π» -, ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, Π° ΠΏΠΎΡ‚ΠΎΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ макроопрСдСлСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ int ΠΊΠ°ΠΊ INT. ΠŸΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ часто употрСбляСмых Ρ„ΡƒΠ½Ρ†ΠΈΠΉ, использованиС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ссылочного Ρ‚ΠΈΠΏΠ° ΠΈ нСсколко вводящих Π² Π·Π°Π±Π»ΡƒΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ ΡƒΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½ΡƒΡŽ Π½Π΅Ρ€Π°Π·Π±Π΅Ρ€ΠΈΡ…Ρƒ.

13. (*3) ΠŸΠΎΠΌΠ΅Π½ΡΠΉΡ‚Π΅ΡΡŒ со своим Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρƒ вас ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈΡΡŒ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠΈ. НС запуская Π΅Π΅ ΠΏΠΎΠΏΡ‹Ρ‚Π°ΠΉΡ‚Π΅ΡΡŒ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° вашСго Π΄Ρ€ΡƒΠ³Π°. ПослС выполнСния этого упраТнСния Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Π΅Π³ΠΎ слСдуСт ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ.

14. (*2) ΠŸΠ΅Ρ€Π΅ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ с comlpex (#6.3.1), tiny (#6.3.2) ΠΈ string (#6.9) Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ friend Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ‡Π»Π΅Π½Ρ‹. ΠŸΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΈΠ· Π½ΠΎΠ²Ρ‹Ρ… вСрсий. Π‘Ρ€Π°Π²Π½ΠΈΡ‚Π΅ ΠΈΡ… с вСрсиями, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΄Ρ€ΡƒΠ·ΡŒΡ. Π•Ρ‰Π΅ Ρ€Π°Π· посмотритС Π£ΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠ΅ 5.3.

15. (*2) ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ Ρ‚ΠΈΠΏ vec4 ΠΊΠ°ΠΊ Π²Π΅ΠΊΡ‚ΠΎΡ€ ΠΈΡ… Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… float. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ operator[] для vec4. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ +, -, *, /, =, +=, -=, *=, /= для сочСтаний Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ² ΠΈ чсСл с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ.

16. (*3) ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ класс mat4 ΠΊΠ°ΠΊ Π²Π΅ΠΊΡ‚ΠΎΡ€ ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… vec4. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ для mat4 operator[], Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠΉ vec4. ΠžΠΏΡ€Π΄Π΅Π»ΠΈΡ‚Π΅ для этого Ρ‚ΠΈΠΏΠ° ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠ΅ для mat4 ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Гусса.

17. (*2) ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ класс vector, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΉ vec4, Π½ΠΎ с Π΄Π»ΠΈΠ½ΠΎΠΉ, которая задаСтся ΠΊΠ°ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ конструктора vector::vector(int).

18. (*3) ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ класс matrix, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΉ mat4, Π½ΠΎ с Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒΡŽ, Π·Π°Π΄Π°Π²Π°Π΅ΠΌΠΎΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ конструктора matrix::matrix(int,int).

Π“Π»Π°Π²Π° 7 ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Π΅ ΠšΠ»Π°ΡΡΡ‹

НС Π½Π°Π΄ΠΎ Ρ€Π°Π·ΠΌΠ½ΠΎΠΆΠ°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π±Π΅Π· нСобходимости

У. Оккам

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

7.1 Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

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

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

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

7.2 ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Π΅ ΠšΠ»Π°ΡΡΡ‹

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡ΠΈ понимания Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π° языка ΠΈ ΠΌΠ΅Ρ‚Π΄ΠΎΠ² Π΅Π³ΠΎ примСнСния, знакомство с понятиСм ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Ρ… классов дСлаСтся Π² Ρ‚Ρ€ΠΈ этапа. Π’Π½Π°Ρ‡Π°Π»Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π½Π°Π΄ΠΎ Π²ΠΎΡΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊ рСалистичныС, Π±ΡƒΠ΄ΡƒΡ‚ описаны

сами срСдства языка (запись ΠΈ сСмантика). ПослС этого Π΄Π΅ΠΌΠΎΠ½Ρ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹Π΅ примСнСния ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Ρ… класов, ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, приводится закончСнная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°.