Дәріс. ӘРЕКЕТТЕР АЙМАҚТАРЫ МЕН АТАУЛАР КЕңіСТіКТЕРі
Ә рбір бағ дарламалық обьекттің орны мен тү рі арқ ылы анық талатын ө мір уақ ыты мен ә рекеттер аймағ ы бар. Ә рекеттер аймағ ының келесі тү рлері бар: - блок; - функция прототипі; - функция; - файл; - бағ дарламалық жобаның барлық файлдарын шекке қ осатын файлдар тобы (ә рекеттердің глобалды аймағ ы); - класс; - атаулар кең істігі (ә рекеттердің глобалды аймағ ының бө лігі); Бағ дарламалық обьекттің ә рекеттер аймағ ының барлық бес категориясын қ ысқ аша қ арастырып ө тейік: Блок. Блок ішінде анық талғ ан объект локалды болып саналады. Осындай обьекттің ә рекеттесуінің аймағ ы анық талу нү ктесінде анық талады жә не блок аяғ ында аяқ талады. Сақ тау класы обьектісінің (автоматты) ө мір сү ру уақ ыты оның анық талу мерзімінен басталады жә не блок жұ мысы біткеннен кейін аяқ талады. Static (статикалық) спецификаторы бар блок обьектісі ө з мә нін блоктың аяқ талуынан кейін сақ тайды, ал оның ө мір сү ру уақ ыты бағ дарламаның орындалу уақ ытымен сә йкес келеді. Функция прототипі. Функцияның прототиптер (хабарламалар) параметрлер тізімінде кө рсетілген идентификаторлардың ә рекеттер аймағ ы ретінде тек функция прпототипі бар. Сондық тан функция параметрлерінің туынды идентификаторларын қ олдануғ а болады жә не олардың мү лдем жіберіп қ оюғ а болады. Функция. Функция блогында анық талғ ан бағ дарламалық обьектілер қ алыпты блокта сияқ ты ә рекеттер аймағ ы жә не ө мір уақ ытына иеленеді. Мә н бойынша берілетін функция параметрлері ә рекеттер аймағ ы ретінде бү кіл функциясы бар жә не ө мір уақ ыты- функциясының орындалу уақ ыты. Сілтеме бойынша берілетін функция параметрлері функция шақ ырылуына сә йкес аргументтермен анық талатын ө мір уақ ытымен ә рекеттер аймағ ына, ә рине, функция блогы да кірмейді. Файл. Атаулар кең істігі немесе класс, функция, кез келген боктан тыс static сақ тау класының сипаттауышын қ олдану кө мегімен анық талғ ан бағ дарламалық обьект анық тау нү ктесінде басталатын жә не файл соң ында аяқ талатын ә рекеттре аймағ ына ие болып табылады. Ә рекеттер аймағ ына енгізілген (ішкі) блоктар қ осылады, егер олардың қ ұ рамында идентификаторы бірдей болып табылатын қ айта анық талғ ан бағ дарламалық обьект болмаса. Егер енгізілген блокта бірдей идентификаторы бар қ айта анық талғ ан обьект бар болсы, онда бұ л жағ дайда сыртқ ы обьект енгізілген блокта кө рінбейді, оғ ан, егер глобальды болса (атаулар кең істігіне немесе кластан, блоктан тыс анық талғ ан), “:: ” кө ріну аймағ ына ө туді рұ қ сат ету операциясының кө мегімен қ атынасуғ а болады. Мұ ндай обьекттің ө мір уақ ыты максималды жә не бағ дарламаны орындау уақ ытына сә йкес келеді. Бағ дарлаамалық жобаның (ә рекеттердің глобалды аймағ ы) барлық файлдарын шегіне қ осатын файлдар тобы. Extern (сыртқ ы) класының сақ тау класының сипаттаушысын қ олдану кө мегімен басқ а файлдардағ ы жә не жарияланғ ан жә не атаулар кең істігі немесе класс, функция, блоктан тыс жобаның файлдарының біреуінде анық талғ ан бағ дарламалық обьекттің ә рбір осындай файлдарын жариялау немесе анық тау нү ктесінде басталатын жә не файл соң ында аяқ талатын ә рекеттер аймағ ына ие. Ә рекеттер аймағ ына енгізілген (ішкі) блоктары қ осылады, егер олардың қ ұ рамында бірдей идентификаторы бар бағ дарламалық обьекттің ө мір уақ ыты максималды жә не бағ дарламаны орындау уақ ытымен сай келеді. Класс. Статикалық класс мү шелерінен басқ а обьект – кластарының мү шелері кластың ә рекеттер аймағ ына иеленеді. Бұ л олар класс ішінде ғ ана орындалатынын білдіреді. Обьект – класс мү шелер ө мірінің уақ ыты обьект-класын анық тау мерзімінен оның бұ зылу мерзіміне дейінгі уақ ытта анық талады. Статикалық мү ше-берілгендер мен ә дістер глобалды болып табылады жә не қ алыпты статикалық айнымалылар мен функциялармен салыстырғ анда осы класс сипаттамасы бар кө пфайлды жобаның барлық файлдары ү шін рұ қ сат етілген болып табылады. Статикалық мү ше-берілгендер қ алыпты глобалды айнымалылар сияқ ты жоба файлдарының біреуінде анық тау керек. Статикалық мү ше-берілгендер жә не функция-мү шелер бір обьектті қ ұ рғ анғ а дейін де рұ қ сат етілген болады. Оларғ а «::» операторы арқ ылы қ атынасуғ а болады. Атаулар кең істігі. С++ тілі name space операторы арқ ылы атаулардың ә рекеттер аймағ ын глобалды бө лігі сияқ ты нақ ты тү рде беруге мү мкіндік береді. ә рбір ә рекеттер аймағ ында атаулар кең істігі деп аталатындарды айырады. Атаулар кең істігі –идентификатор ә мбебап болып табылатын аймақ. Тү рлі атаулар кең істіігінде идентификаторлар бірдей болуы мү мкін, себебіі сілтемелер шешуші бағ дарламадағ ы идентификатор контексті бойынша жү зеге асырылады, мысалы: struct Node { int Node; int I; } Node; Бұ л жағ дайда қ арсылық тар жоқ, себебі тип атаулары, қ ұ рылым айнымалылары мен ө рістері атаулардың тү рлі кең істіктеріне қ атысты болады. С++ тілінде атаулар кең істігінің тө рт тү рі анық талғ ан, олардың ә рбіреуінің шектерінде идентификаторлар ә мбебаб болуы керек. -қ олданушымен анық талғ ан типтер, функциялар, айнымалылар (объекттер) идентификаторларғ а қ атысты атаулар кең істігі жә не ә рекеттердің бір аймақ тық шектеріндегі константалардың аталып ө туі. Функциялар идентификатоларынан басқ аларының барлығ ы енгізілген блоктарда қ айта анық талуы мү мкін. - бірлестіктер, кластар, қ ұ рылымдар, атап ө тулер типтерінің атауларын тү зетін кең істік. Бұ л атаулар кең істігінде ә рбір осындай идентификатор бір ә рекеттер аймағ ындағ ы шектерде ә мбебап болуы керек. - Атаулардың бө лек атаулары ә рбір кластың мү шелерін қ ұ рады. Класс мү шесінің аты класс ішінде ә мбебап болуы керек, бірақ басқ а кластардың мү шелерінің атауларымен бірдей болуы мү мкін. - Белгілер бө лек атаулар кең істігін тү зеді.
|