§ 2. Класы
2.1. Структура класа
Нагадаем асноўныя паняцці, звязаныя з апісаннем класа. У прыкладзе 2.1 выкарыстоўваецца клас Student. Імя класа прынята пісаць з вялікай літары. У агульным выглядзе апісанне класа выглядае наступным чынам: class iмя_класа { private: /* спіс уласцівасцей і метадаў для выкарыстання ўнутры класа */ public: /* спіс метадаў, даступных іншым функцыям і аб'ектам праграмы */ protected: /*спіс сродкаў, даступных для дружалюбных класаў і наследнікаў*/ }; Усе ўласцівасці і метады класаў маюць правы доступу. Па змоўчанні ўсё змесціва класа з'яўляецца даступным для чытання і запісу толькі для яго самога. Для таго каб дазволіць доступ да даных класа звонку, выкарыстоўваюць мадыфікатар доступу public. Усе функцыі і пераменныя, якія знаходзяцца пасля мадыфікатара public, становяцца даступнымі з усіх частак праграмы. Закрытыя даныя класа размяшчаюцца пасля мадыфікатара доступу private. Калі адсутнічае мадыфікатар public, то ўсе функцыі і пераменныя па змоўчанні з'яўляюцца зачыненымі. Звычайна прыватнымі робяць усе палі класа, а публічнымі — яго метады. Усе дзеянні з зачыненымі палямі класа рэалізуюцца праз яго метады. Паколькі метад у класе з'яўляецца функцыяй, то і апісваюць метады гэтак жа, як апісваюць функцыі. Аб'яўляюць метады ўнутры класа, а вызначэнне метадаў можа быць як унутры класа, так і па-за ім. Вызначэнне метадаў па-за класа дазваляе пры неабходнасці лёгка вынесці іх у асобны файл. Вызначэннi метадаў класа вельмі падобныя на звычайныя вызначэннi функцый. Кожны з метадаў мае загаловак і цела, можа мець тып значэння, якое вяртаецца, і параметры. Але ёсць і адрозненні:
Паколькі даныя ў класе з'яўляюцца прыватнымі, карыстальнік не можа напрамую вызначыць ці змяніць значэннi даных. Для гэтых мэт выкарыстоўваюцца спецыяльныя метады. У класах прынята аб'яўляць так званыя set- i get-функцыі (у рускамоўнай літаратуры іх часам называюць сетэры і гетэры), з дапамогай якіх можна працаваць з элементамі даных. Такіх функцый у класе можа быць некалькі. На аб'екты класаў, як і на аб'екты іншых тыпаў, можна вызначаць паказальнікі. Затым праз паказальнік можна звяртацца да членаў класа — да пераменных і метадаў (прыклад 2.2). Аднак калі пры звароце праз звычайную пераменную выкарыстоўваецца сімвал кропка, то для звароту да членаў класа праз паказальнік прымяняецца стрэлка «–>» (знакi «мiнус» і «больш»). [1] Значок пазначае аперацыю «раскрыццё вобласці бачнасцi». |
Прыклад 2.1. Праграма для вырашэння наступнай задачы: «Прачытаць з тэкставага файла даныя пра студэнтаў (прозвішча, горад, год нараджэння, адзнакі ЦТ) і вывесці ў файл у парадку змяншэння сумарнага бала прозвішчы, горад і сумарны бал».
Прыклад 2.2. Зварот праз паказальнік да членаў класа Date (прыклад 22.5 навучальнага дапаможніка 10-га класа, $@BOOKVIEWBYIDCH*3574*10521@$#pr5).
Змены па паказальніку d5 у дадзеным выпадку прывядуць да зменаў аб'екта d4. У выніку выканання каманд будзе выведзена 17.3. |