С++ бағдарламалау тілі



бет3/5
Дата17.10.2023
өлшемі70,37 Kb.
#116747
1   2   3   4   5
Байланысты:
С негіздері

Құрылымы икемді тіл
С++ тіліндегі барлық массивтер — бір өлшемді. Көп өлшемді массивтер осы бір өлшемді массивтерден құрылады. Массивтер мен құрылымдар (жазбалар) бір – бірімен керекті түрде байланысып, мәліметтер базасын құрайды.
С++ тіліндегі класстар
С++ тілінде бағдарламалаушы берілгендердің бос типтердің енгізу мен класстар арқылы орындалатын операцияларды анықтау мүмкіндіктеріне ие.
Класс – бұл бар типтер негізіндегі туындықұрылымы бар (структурированный) тип. Класс ең оңай әдіспен келесі конструкция арқылы анықтауға болады:
Класс_кілті класс_аты{компоненттер тізімі};
Мұнда класс_кілті – class, struct,union қызметші сөздерінің бірі;
класс_аты еркімен таңдалатын идентификатор;
компоненттер тізімі клссқа қатысты функциялармен типтелген берілгендерді сипаттаушылар мен анықтамалары. Компоненттер объект күйін және класс объектісінің тәртібін шартқа негіздейді. Класс компонеттері деректер, функциялар, класстар, санап шығулар, биттік өрістер, достасқан функциялар мен типтер атаулары бола алады. Мысалы:
Class Classid
{ int k; // k, x, y жабық мүшелер – үнсіздік бойынша берілгендер
double x,y;
public: char lit,ch; // lit,ch ашық мүшелер деректер
int f3(int, int); // класстың ашық әдістері
int Get x (void) // класстың орнына қою әдісі
{return x;}
private:
void f1 (void); // жабық мүшелер – класс әдістері
int f2(int);
};
Қатынау спецификаторлары public: және private: қатынау спецификаторлары класс мүшелеріне өтуге мүмкіндік беретін режимді анықтайды: private – класс мүшелерін жабыққы айналдырады, ал public – ашық. Класстың жабық мүшелеріне тек берілген класс мүшелерінің қатынауға рұқсаты бар, сонымен қатар функциялардың – класс достары. Класстың ашық мүшелеріне кез келген функциялардың қатынауға мүмкіншіліктері бар.
Олар бар болып табылатын бағдарлама мен класс объектілерінің байланысы үшін арналған. Классты жобалап отырып, оның қай мүшесін ашық, ал қайсысын жабық етуді мұқият ойластырған жөн. Көптеген жағдайда класс анықтамасы блокта локализацияланбаған, және класс атауының іс — әрекет облысы бүкіл файл болып табылады.
Жай класстық әдістерін анықтау класс анықтамасының ішінде болуы мүмкін және мұндай жағдайда олар автоматты түрде орын ауыстырғандар болып табылады. Орын ауыстыратын функцияларды егер функция қарапайым және қысқа болса, қолданған жөн, мысалы Get x () фукциясы.
Әдетте, қауіпсіздікті жоғарлату мақсатымен классты мүше берілгендерін жалпыға бірдей рұқсат етілмейтін етеді және еркін бағдарлама ортасынан олармен тікелей байланысуға болмайды. Бірақ оған қарамастан олармен класстың барлығына рұқсат етілгенәдістерін қолданып ерікті бағдарламалық ортадан да жұмыс істеуге болады (public:). Жоғарыда қарастырылған мысал үшін келесі әдіс қолданылады:
int Get x (void)
return x;
жабық мүше мәнін берілген х қайтарады.
Арнайы түрде мұндай әдістердің «жүдеу» денелерін тиімділікті жоғарлату үшін орын ауыстырушы етіп класс анықтамасының ішінде енгізеді. Класс анықтамасынан тыс орналастыратын әдістерді анықтаған жағдайда әдістер тақырыбына inline спецификаторы қосылады.
«Клиент – сервер» технологиясы бойынша класс әдістерін анықтау класс анықтамасынан тыс орналастырған жөн. Көру облысының «::» рұқсат ету операторы арқылы компиляторға берілген анықталатын әдіс қандай классқа қатысты екендігін хабарлайды, мысалы:
int Classid:: f2(int х)
{әдіс денесі}
Класс анықтамасы берілген класс объектілерін құрмайды. Объектілер оларды анықтау жолымен құрады, мысалы:
Classid obj1, obj2, obj Array
Класс объектісінің өлшемі класстың статистикалық емес мүше берілгендерінің өлшемдер қосындысымен жадыда анықталады.
Бірнеше файлдардан тұратын бағдарламалық жобалармен жұмысжасағанда класс анықтамасы берілген класс объектілері қолданатын немесе оның әдістері анықталатын файлдарда болуға міндетті. Сондықтан класс анықтамасын арнайы түрде ол қажет болып табылатын файлдарда #include дерективасы көмегімен қосылатын тақырыптық файлға (хедер –файл) орналастырылады.Егер класс әдісінің анықтамасы анықталудан тыс орналасса,онда ол міндетті түрде өзі қолданылатын файлдарда анықталған болуы керек.Мұндай әдістің анықтамасы класс анықтамасымен бірге тақырыптық файлда болуы керек.
Белгілі бір класс обьектісінің ашық мүшелеріне қатынауға рұқсат алуды тура «.» және жанама « » таңдау операторлары көмегімен жүзеге асырылады.
С++ тілінде обьектілерді жою иницализациялау жұмыстарын орындайтын, обьектлердің жойылуы мен құрылуы кезінде автоматты түрде шақырылатын, кластың арнайы әдістері сәйкесінше конструкторлар мен деструкторлар деп аталады. Класта бірнеше конструкторларды құруға болады. Әрбір конструкторлардың өзінің басқалардан айырмашылығы бар параметрлері болады.Параметрлері жоқ конструктор үнсіздік конструкторы.Десруктор әрқашан жалғыз және параметрлері болмайды.
Тек ашық мүшелері бар және конструкторы жоқ класс обьектісі мәндер тізімі арқылы жай құрылымдық айнымалы сияқты инициализациялануы мүмкін.
Егер класс конструкторларының біреуі де ашық функция —
Класс мүшесі болып табылмаса,онда мұндай класстың мүшелері құрыла алмайды.Олар басқа кластар үшін базалық кластар болып табылады.
Класс обьектісін құрған кезде ол үшін сәйкес келетін конструктор автоматты түрде шақырылады.
Конструктор параметрі өз класы бола алмайды,бірақ көшіру конструкторы сияқты оған жасалған сілтеме болуы мүмкін.
Кластын компанент берілгеннің жалғыз данасы болуы үшін және кластың әрбір обьектісінің құрылуы кезінде басып шығарылмауы үшін ол класты статикалық сияқты анықтау керек,яғни Static атрибуты болуы керек.
Кластың статикалық компаненттік функциялары нақты обьект атауы жоқ кластың Static берілгендеріне қатынасуды қамтамасыз етеді.Кластың Static функциялары жай (статикалық емес) компаненттік барлық негізгі ерекшеліктерін сақтайды.






pro32.com
РЕКЛАМА•16+


Антивирус PRO32 - Надежная защита от вирусов
Улучшенная защита от интернет-мошенников, вирусов и спама для всей семьи!
|Антивирус для дома


|Антивирус для бизнеса


Узнать больше
Класқа қатысты функция нақты обьекттің берілгендерін өңдеу үшін шақырған кезде бұл функцияға автоматты және айқын емес функция шақырылған обьект көрсеткіші беріледі.Бұл көрсеткіштің бекітілген this аты бар бағдарламалаушы үшін байқаусыз кластың әрбір функциясы келесі түрде анықталған:
Класс- аты *const this = өңделетін-обьекттің –адресі;
This көрсеткішін қолдану тиімділігі көрінетін жағдайлар:
-берілген класс компанентінің аты класс функциясының формальды параметрінің атымен сәйкес келгенде;
-класс функциясының денесінде айқын түрде бұл функция шақырылған обьект адресін көрсету қажет болғанда;
-функция параметрі ретінде кластың атын жазған кезінде обьекттің нақты атына жол берілмегенде (керек обьектіге мұндай функция сілтемесін немесе көрсеткішін берудің орнына).


Достарыңызбен бөлісу:
1   2   3   4   5




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет