ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ рСализация абстракций Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…

ΠšΡƒΡ€ΡΠΎΠ²Π°ΡΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

ДСнис Π ΠΈΡ‡ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π» ΠΈ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π» язык программирования C Π½Π° DEC PDP-11 с ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой UNIX. Π―Π·Ρ‹ΠΊ являСтся Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ старого языка BCPL. ΠœΠ°Ρ€Ρ‚ΠΈΠ½ Π ΠΈΡ‡Π°Ρ€Π΄ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π» BCPL ΠΏΠΎΠ΄ влияниСм созданного КСном Вомсоном языка B, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈΠ²Π΅Π» ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ C Π² 1980 Π³ΠΎΠ΄Ρƒ. ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ курсового ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π±Ρ‹Π» спроСктирован шаблон класса для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒΡŽ с ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ рСализация абстракций Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

1 ВСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

2 Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

3 ОписаниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Бписок ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… источников

ДСнис Π ΠΈΡ‡ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π» ΠΈ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π» язык программирования C Π½Π° DEC PDP-11 с ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой UNIX. Π―Π·Ρ‹ΠΊ являСтся Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ старого языка BCPL. ΠœΠ°Ρ€Ρ‚ΠΈΠ½ Π ΠΈΡ‡Π°Ρ€Π΄ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π» BCPL ΠΏΠΎΠ΄ влияниСм созданного КСном Вомсоном языка B, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈΠ²Π΅Π» ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ C Π² 1980 Π³ΠΎΠ΄Ρƒ.

Π’ Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π»Π΅Ρ‚ стандартом C Π΄Π΅-Ρ„Π°ΠΊΡ‚ΠΎ Π±Ρ‹Π»Π° вСрсия, поставляСмая для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы UNIX System V. Растущая ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ² ΠΏΡ€ΠΈΠ²Π΅Π»Π° ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡŽ мноТСства ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для C.

C Ρ‡Π°ΡΡ‚ΠΎ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ языком срСднСго уровня. Π­Ρ‚ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ элСмСнты языков высокого уровня с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ ассСмблСра.

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

НаиболСС Π²Π°ΠΆΠ½Ρ‹ΠΌ понятиСм Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ являСтся понятиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. ΠžΠ±ΡŠΠ΅ΠΊΡ‚-это логичСская Π΅Π΄ΠΈΠ½ΠΈΡ†Π°, которая содСрТит Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π° (ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹) ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ этих Π΄Π°Π½Π½Ρ‹Ρ…. Π’ ΡΠ·Ρ‹ΠΊΠ΅ Π‘++ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€Π°Π²ΠΈΠ» ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² Π‘++, Π½Π°Π΄ΠΎ сначала ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Ρ„ΠΎΡ€ΠΌΡƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова class.

ОписаниС класса производится ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

сlass: <�имя>

{

[< спСцификатор видимости>]

< Ρ‡Π»Π΅Π½ класса>

};

Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ видимости опрСдСляСт ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ доступности Ρ‡Π»Π΅Π½ΠΎΠ² класса ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ значСния:

private (Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ) — доступный Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ Π΄Ρ€ΡƒΠ·Π΅ΠΉ этого класса;

protected (Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹ΠΉ) — доступный Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², Π΄Ρ€ΡƒΠ·Π΅ΠΉ этого класса ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Ρ… ΠΎΡ‚ Π½Π΅Π³ΠΎ классов;

public (ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ) — доступный ΠΈΠ· ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ срСды.

Π§Π»Π΅Π½Π°ΠΌΠΈ класса ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ:

?Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ поля, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ поля структуры;

?ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ‡Π»Π΅Π½Π° класса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΡ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ‡Π»Π΅Π½Ρ‹ класса Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ всСгда, ΠΊΠΎΠ³Π΄Π° вносится ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ класса. Π’ ΠΈΠ΄Π΅Π°Π»Π΅ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΡ‚Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π½Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Слях класса. К ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡŽ, это Π½Π΅ Ρ‚Π°ΠΊ. Для размСщСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ классового Ρ‚ΠΈΠΏΠ° компилятор Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π½Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° класса. Если Ρ€Π°Π·ΠΌΠ΅Ρ€ этих ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² мСняСтся, Ρ‚ΠΎ Ρ„Π°ΠΉΠ»Ρ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… класс ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, Π½ΡƒΠΆΠ½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°Π½ΠΎΠ²ΠΎ.

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

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

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

Π€Π°ΠΉΠ» UnQLimSz. h

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ стандартныС ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ шаблонного класса для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒΡŽ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π½Π° Π±Π°Π·Π΅ массива. Π’ ΡˆΠ°Π±Π»ΠΎΠ½Π΅ классов Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒΡŽ:

* инициализация ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ (конструктор);

* Ρ€Π°Π·Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ с ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ занятой динамичСской памяти (дСструктор);

* занСсСниС элСмСнта с Π»Π΅Π²ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ†Π°;

* занСсСниС элСмСнта с ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ†Π°;

* ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ элСмСнта с Π»Π΅Π²ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ†Π°;

* ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ элСмСнта с ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ†Π°;

* ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ состояния ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ указатСля Π½Π° Π»Π΅Π²Ρ‹ΠΉ ΠΊΠΎΠ½Π΅Ρ† ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ;

* ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ состояния ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ указатСля Π½Π° ΠΏΡ€Π°Π²Ρ‹ΠΉ ΠΊΠΎΠ½Π΅Ρ† ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ.

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ элСмСнта Π² ΠΏΡ€Π°Π²Ρ‹ΠΉ ΠΊΠΎΠ½Π΅Ρ† ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ

template< class T >

bool UnQueueLimSize< T >: AddRight (

// false — элСмСнт Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½

const T

&add) // Π”Π°Π½Π½ΠΎΠ΅ для добавляСмог элСмСнта

{

// ΠžΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π°?

if (Size>=MaxSize)

{

return false;

}

// ДобавляСм элСмСнт Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ

Right = (Right+1) % MaxSize; pQueue[ Right ] = add;

Size++;

return true;

}

// Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ элСмСнта Π² Π»Π΅Π²Ρ‹ΠΉ ΠΊΠΎΠ½Π΅Ρ† ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ

template< class T >

bool UnQueueLimSize< T >: AddLeft (

// false — элСмСнт Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½

const T

&add) // Π”Π°Π½Π½ΠΎΠ΅ для добавляСмого элСмСнта

{

// ΠžΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π°?

if (Size>=MaxSize)

{

return false;

}

// ДобавляСм элСмСнт Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ

pQueue[ Left ] = add;

Left = (Left+MaxSize-1) % MaxSize; Size++;

return true;

}

// Π˜Π·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ элСмСнта ΠΈΠ· Π»Π΅Π²ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ†Π° ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ

template< class T >

bool UnQueueLimSize< T >: OutLeft (

// false — ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ

T &out) // Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΠ·Π²Π»Π΅ΠΊΠ»ΠΈ

{

// ΠžΡ‡Π΅Ρ€Π΅Π΄ΡŒ пуста?

if (Size==0)

{

return false;

}

// ИзвлСкаСм элСмСнт ΠΈΠ· ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ

Left = (Left+1) % MaxSize; out = pQueue[ Left ];

Size—;

return true;

}

// Π˜Π·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ элСмСнта ΠΈΠ· ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ†Π° ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ

template< class T >

bool UnQueueLimSize< T >: OutRight (

// false — ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ

T &out) // Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΠ·Π²Π»Π΅ΠΊΠ»ΠΈ

{

// ΠžΡ‡Π΅Ρ€Π΅Π΄ΡŒ пуста?

if (Size==0)

{

return false;

}

// ИзвлСкаСм элСмСнт ΠΈΠ· ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ

out = pQueue[ Right ];

Right = (Right+MaxSize-1) % MaxSize;

Size—;

return true;

}

1 ВСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

#include «stdio.h»

#include «conio.h»

#include

#include

#include

#include

using namespace std;

template

class Queue // класс ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ

{

class strucelem // встроСнный класс

{

public:

T data;// ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ΅ ΠΏΠΎΠ»Π΅

strucelem * next;// адрСсноС ΠΏΠΎΠ»Π΅

strucelem * prev;

strucelem () { next = 0;prev = 0;}// конструктор

};

strucelem * BeginQ;// ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт

strucelem * LastQ;// ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ элСмСнт

public:

Queue ();// коструктор

~Queue ();// дСструктор

void PrintQueue ();// ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ

void AddQueue (T data);// Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ элСмСнтов Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ

bool CheckQueue ();// ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° состояния ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ

void DelQueue ();// ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΈΠ· ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ

void DeleteQueue ();// ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ

};

// ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€.

template

Queue: Queue () {

BeginQ = 0;

LastQ = 0;

}

// ДСструктор — освобоТдаСм ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΈ ΠΏΠ°ΠΌΡΡ‚ΡŒ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ ΠΏΠΎΠ΄ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹.

template

Queue: ~Queue () {

strucelem *work;

while (BeginQ) {

work = BeginQ->next;

delete BeginQ;

BeginQ = work;

}

BeginQ = NULL;

LastQ = NULL;

}

//ΠŸΠ΅Ρ‡Π°Ρ‚ΡŒ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ

template void Queue: PrintQueue ()

{

strucelem *p = BeginQ;

cout << endl << «ΠžΡ‡Π΅Ρ€Π΅Π΄ΡŒ: «;

while (p)

{

cout <data<<' ';

p = p->next;

}

cout << endl;

}

// ΠŸΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ.

template

void Queue: AddQueue (T data) {

strucelem * link = new strucelem;

if (BeginQ == NULL) {

link->data = data;

BeginQ = link;

LastQ = link;

}

else {

link->data = data;

LastQ->next = link;

LastQ = LastQ->next;

}

}

// ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ состояниС ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ.

template

bool Queue: CheckQueue () {

if (BeginQ) return true;

else return false;

}

// Π˜Π·ΡŠΡΡ‚ΡŒ ΠΈΠ· ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ.

template

void Queue: DelQueue () {

strucelem *link;

T p;

if (BeginQ ≠ NULL) {

link = BeginQ;

BeginQ = BeginQ->next;

if (BeginQ == NULL)

LastQ = 0;

p = link->data;

delete link;

// return p;

}

//else return 0;

}

// ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ.

template

void Queue: DeleteQueue () {

strucelem * link;

while (BeginQ) {

link = BeginQ;

BeginQ = BeginQ->next;

if (!BeginQ) LastQ = 0;

delete link;

}

}

int main (){

setlocale (LC_ALL," Russian");

// Π€ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ

Queue d;

int iCount = 1;

cout<<" Π’Π²Π΅Π΄ΠΈΡ‚Π΅ количСство элСмСнтов (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 1):" ;

cin>>iCount;

if (iCount <= 0)

iCount = 1;

int n = 0;

for (int i=0; i

cout<<" nΠ’Π²Π΅Π΄ΠΈΡ‚Π΅ число =";

cin>>n;

d.AddQueue (n);

}

d.PrintQueue ();

//data_int.CheckQueue ();

//data_int.PrintQueue ();

//Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ элСмСнтов

cout<<" Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΊΠΎΠ»-Π²ΠΎ элСмСнтов Π½Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅:" ;

cin>> iCount;

for (int i=0; i

cout<<" nΠ’Π²Π΅Π΄ΠΈΡ‚Π΅ число =";

cin>>n;

d.AddQueue (n);

}

d.PrintQueue ();

// Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ элСмСнтов

cout<<" Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΊΠΎΠ»-Π²ΠΎ элСмСнтов Π½Π° ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅:" ;

cin>> iCount;

for (int i=0; i

d.DelQueue ();

d.PrintQueue ();

cout<<" ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ:" ;

d.DeleteQueue ();

d.PrintQueue ();

system («pause»);

return 0;

}

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹

3 ОписаниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

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

Π‘ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΡƒΠ΅ΠΌ шаблон класса Queue с Ρ‚ΠΈΠΏΠΎΠΌ T.

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ интСрфСйс шаблона класса Queue:

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ Queue ()

НазначСниС: создаСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса Queue, Ρ‚. Π΅. создаСт ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, выдСляСт Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ для хранСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

ДСструктор ~ Queue ()

НазначСниС: удаляСт Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°-ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ ΠΏΠ°ΠΌΡΡ‚ΡŒ.

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹:

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ элСмСнта n Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ PutQueue (T data)

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ элСмСнта ΠΈΠ· ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ T GetQueue ()

Π’Ρ‹Π²ΠΎΠ΄ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ Π½Π° ΡΠΊΡ€Π°Π½ PrintQueue ()

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ ClearQueue ();

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° состояния ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ Π‘heckQueue ()

Бвойства:

T data — ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ΅ ΠΏΠΎΠ»Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°-ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ;

strucelem * nextΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ элСмСнт (адрСсноС ΠΏΠΎΠ»Π΅)

strucelem * prev — ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ элСмСнт

strucelem * BeginQ — ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт;

strucelem * LastQ — ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ элСмСнт;

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ΅ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ

ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ курсового ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π±Ρ‹Π» спроСктирован шаблон класса для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒΡŽ с ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ создания ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ установлСнного Ρ‚ΠΈΠΏΠ°, добавлСния ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΡ элСмСнтов ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ, Π²Ρ‹Π²ΠΎΠ΄Π° содСрТимого ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ Π½Π° ΡΠΊΡ€Π°Π½, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ.

Π’ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ курсового проСктирования Π±Ρ‹Π»Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ C++, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰Π°Ρ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ описанных Π²Ρ‹ΡˆΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

Бписок ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… источников

1. Π“Π΅Ρ€Π±Π΅Ρ€Ρ‚ Π¨ΠΈΠ»Π΄Ρ‚ «Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ программиста ΠΏΠΎ C/C++, Π²Ρ‚ΠΎΡ€ΠΎΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅» — Москва — Π‘Π°Π½ΠΊΡ‚-ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³ — КиСв 2001 Π³.

2. Π’. А. Павловская «C/C++ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ высокого уровня» — Москва — Π‘Π°Π½ΠΊΡ‚-ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³ 2005 Π³.

3. Π . Π›Π°Ρ„ΠΎΡ€Π΅ «ΠžΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² Π‘++, Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚ΠΎΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅» — Москва — Π‘Π°Π½ΠΊΡ‚-ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³ — Минск 2004 Π³.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ