Орындаған: МИ-123 тобының магистранты Қамбарбай Бекзат
Тексерген: Алханова Гульнур Алхановна
Класстар түсінігі
Класс - құрылым мен функция ұғымдарын біріктіретін С++ тіліндегі бағдарламаның жаңа элементі.Өз ішіндегі Класс әр түрлі деректерді сондай-ақ осы деректерді манипуляциялау және өңдеу функцияларын қамтуы мүмкін.
Классты қолданудың мәні
Класс пәндік саладағы кез-келген тұжырымдаманың бағдарламалық моделі ретінде қызмет етеді. Класс объектінің қасиеттерін (құрылым өрістері арқылы) және оның әрекетін (функциялар жиынтығы арқылы) сипаттауға мүмкіндік береді.
Ең қарапайым класс
#include using namespace std; class MyClass { public: int data1; int data2; void set(int a1, int a2) { data1 = a1; data2 = a2; } void show() { cout << data1 << " " << data2 << endl; } }; int main() { MyClass s1, s2; s1.set(10, 5); s2.data1 = 17; s2.data2 = 21; s1.show(); s2.show(); return 0; } Олармен жұмыс істеу үшін деректер мен функцияларды біріктіру-объектіге бағытталған бағдарламаларды әзірлеудің негізгі әдісі. int data1; int data2; ... void set(int, int); void show(); ... деректер
функция
Класс анықтамасы
class аты_класстың { спецификатор_мүмкіндік_1: жол 1; жол 2; ... әдіс 1; әдіс 2; ... спецификатор_мүмкіндік_2: жол 3; әдіс 3; ... }; Өрістер(поля)-деректер элементтері, әдістер(метод)-деректерді басқаруға арналған функциялар. Класстың қолданылуы 1) Класс объектісінің құрылуы имя_класса имя_объекта; Мысал: MyClass x,y; // x,y - объект MyClass *pointer; // объект көретуші MyClass A[10]; // объект массиві Деректерді жасыру (инкапсуляция)
Класс (өріс) ішіндегі деректер рұқсатсыз кіруден қорғалуы мүмкін. Қорғау қол жетімділікті ажырату механизмдерін қолдану арқылы жүзеге асырылады.
Қол жеткізу спецификаторлары:
private (әдепкі) - деректер тек осы сыныпта қол жетімді,
protected-деректер сынып ішінде және оның ұрпақтарынан қол жетімді
public - деректер сынып ішінде, оның ұрпақтарынан және сырттан қол жетімді.
class part // определение класса { private: int modelnumber; // номер изделия int partnumber; // номер детали float cost; // стоимость детали public: void setpart(int mn, int pn, float c) { modelnumber = mn; partnumber = pn; cost = c; } void showpart() { cout << "Model " << modelnumber; cout << ", part " << partnumber; cout << ", costs $" << cost << endl; } }; int main() { part part1; // создаем объект // вызываем методы part1.setpart(624, 37, 217.5F); part1.showpart(); return 0; } Файл "parts.h"
Файл "driver.cpp"
Классы және объект
Объектінің өз класына қатынасы айнымалының оның түріне қатынасымен бірдей.
MyClass - жаңа пайдаланушы түрі (сынып),
s1 және s2-берілген типтегі айнымалылар (сынып объектілері).
Класс пен объект байланысына мысал
Автомобиль (как транспортное средство)
Мой автомобиль (А322 ВС 34 rus)
Автомобиль соседа (Б344 СВ 34 rus)
Автомобиль жены (О187 ВЛ 34 rus)
#include using namespace std; class Distance { private: int feet; float inches; public: void setdist(int ft, float in) { feet = ft; inches = in; } void getdist() { cout << "\nEnter feet: "; cin >> feet; cout << "Enter inches: "; cin >> inches; } void showdist() { cout << feet << "\'-" << inches << '\"'; } }; int main() { Distance dist1, dist2; dist1.setdist(11, 6.25); dist2.getdist();
Нысан өрістерін инициализациялау үшін арнайы әзірленген сынып әдістерін қолдануға болады. Дегенмен, нысан жасалған кезде оның өрістерін автоматты түрде инициализациялау әлдеқайда ыңғайлы. Бұл әдіс конструктор деп аталатын арнайы класс әдісін қолдану арқылы жүзеге асырылады.
Анықтама. Конструктор-бұл объект құрылған кезде автоматты түрде орындалатын класс әдісі.
Конструктор жүйесі
қайтарылатын деректер түрі жоқ (тіпті void)
ол жарияланған сыныппен бірдей атқа ие
конструкторды шамадан тыс жүктеуге рұқсат етіледі (бірдей атау, бірақ әртүрлі параметрлер)
көпшілікке қол жеткізу спецификаторымен жарияланады.