C++ тіліндегі кластар мен әдістер
C++ кластары алдын-ала анықталған жүйелік типтерді кеңітуді ұсынады. Класс - бұл пайдаланушымен анықталатын деректердің объектілі типі , бұл программистпен толық анықталатын агрегаттық тип, оның жазуы осы типтің айнымалыларыныңмүмкіндік шамаларының облысын анықтайтын компонент-деректерден және осы типтің айнымалыларымен және айнымалыны құрайтын компонент-деректермен жүргізілетін операциялардың жазуынан тұрады, Әр класс объектілердің бірыңғай жиынын және олармен жүргізілетін операцияларды көрсетеді. Класс осындай объектілерді жасау, манипуляциялау және жою үшін арналған құралдарды береді.
С-дегі программалардың бірлестігін сақтау үшін С++-те объектілі типтің (кластың) жазу синтаксисы құрылымдық типтің немесе С-дегі біріккен типтің жазуына ұқсас тандалынады. Шын мәнінде С++-тегі құрылымдар мен біріктірулер объектілі типтердің варианттары сияқты қаралады. Объектілі типтердің үш варианты бар: құрылым (struct), біріктіру (union) және класс (class), олар тип компоненттеріне жіберу мүмкіндіктерімен
28
ажырытылады. Әрі қарай қысқартып объектілі типтердің барлық варианттарын класс деп атаймыз. Класты жазу class кілтті сөзден басталады. Кластың мушелерінің тізімін меншікті элементтері анықтайды. Кластың әр компоненті үшін жіберу деңгейі не айқын: public, protectedнемесе privateкілтті сөздердің біреуімен жіберу деңгейін көрсетіп, не айқын емес - үндемеу бойынша орнатылады. Жіберу деңгейін көрсету, жіберудің басқа деңгейін көрсетуін кездескенше, барлық келесі кластың компоненттері жатады.
publicкластың айнымалысы белгілі программаның.кез-келген жерінен осы кластың компоненттеріне жіберуіне рұқсат береді.
privateтек қана кластың функция-әдістерінен осы кластың компоненттеріне жіберуіне рұқсат береді.
protectedкластардың тек иерархиялық жүйесінде мағынасы бар және кластың туынды әдісінен осы деңгейдің компоненттеріне жіберуіне рұқсат береді.
Structтипінің класының барлық компоненті үшін үндемеубойынша жіберу деңгейі publicқабылданады, бірақ та жіберудіңбасқа деңгейлерін айқын беруге болады, classтипінің класының компоненттеріне жіберу деңгейі үндемеу бойынша privateболады, басқа да деңгейлерді айқын анықтауға болады, unionтипінің класы үшін жіберу деңгейі publicболады және ол өзгермейді.
Пайдаланушыға кластың ашық бөлігі жиі қажет болғандықтан, жазу кезінде ол бірінші жүру керек. Мысалы, бір программист TPoint (нүкте) класында нүктелердің координаталарына сыртқы жіберуді тиым салды да, жазықтықтағы нүктелердің орын ауыстыру әдістеріне сыртқы жіберуді рұқсат беруді шешті. TPoint класының жазуын былай құруға болады:
Достарыңызбен бөлісу: |