Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
prog_exz_dayin.docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
237.64 Кб
Скачать

21. Класстың достық функциялары, шаблондары

Класстың достық функциялары- бұл класстың қорғалған (protected) және жабық (private) бөліктеріне енуді қамтамасыз ететін, бірақ берілген класстың мүшесі болып табылмайтын функциялар. Достық функциялар friend түйінді сөзінің көмегімен класстың кез-келген бөлігінде хабарланады. Достық функциялар классты анықтаудың сыртында анықталуы тиіс: көрінудің ауқымды аймағында немесе басқа класста. Достық функциялар бірден бірнеше классқа дос болуы мүмкін.

Шаблондар класстар мен функциялардың шексіз туыстарын (родственные) құруға мүмкіндік береді. Шаблон мәліметтер типінің параметрі ретінде қолданылады.

Функция шаблонын анықтау синтаксисі:

template <шаблон_параметрлерінің_тізімі> функцияны_анықтау

Класс шаблонын анықтау синтаксисі:

template <шаблон_параметрлерінің_тізімі> классты_анықтау

Шаблон немесе шаблон аргументі бойынша функцияны немесе/және класстарды хабрлауды құру үрдісі шаблонның инстанцированиесі деп аталады.

22.Мұрагерлік.Жай және көптік мұрагерлік

Объектілі-бағытталған программалаудың негізгі қасиеті мұрагерлік болып табылады. В класы A класын мұрагерлікке алды десек, онда В класының атынан кейін қос нүкте қойылады:

class A {public:

A();

~A();

MethodA();};

class B : public A {public:

B(); . . .};

«Мұрагерлік" термині В класы А класының барлық қасиеттеріне ие дегенді білдіреді, яғни мұрагерлікке алды. Туынды класстың объектілері базалық класстың барлық атрибуттары мен функцияларына ие. Сонымен қатар жаңа класс өз атрибуттары мен функцияларын қоса алады. Туынды класс басқа класстар үшін базалық бола алады. Мұрагерліктің қатынастарын бейнелей отырып, оларды ағаш түрінде немесе иерархия түрінде береді.

Егер туынды класстың тек бір ғана базалық класы (ата-анасы - родители) болатын болса, онда мұрагерлік жай мұрагерлік деп аталады. Егер туынды класстың бірнеше базалық класстары болатын болса, онда мұрагерлік көптік (множественное) мұрагерлік деп аталады.

23.Абстрактілі класс, виртуалды функция

Егер класстың ең болмағанда бір виртуалды функциясы болса, онда ол класс абстрактілі класс деп аталады. Виртуалды функциялар төмендегідей хабарланады:

class className1

{ // функция-мүшелер

virtual returnType functionName(<параметрлер тізімі>); };

class className2 : public className1

{ // функция-мүшелер

virtual returnType functionName(<параметрлер тізімі>); };

Экранда фигураларды бейнелейтін программаны жазайық. Фигураның жалпы атрибуттары shape класымен, ал арнайы атрибуттар – арнайы класспен берілген:

class shape { point center;

color col; //...

public: void move(point to)

{ center=to; draw(); }

point where() { return center; }

virtual void draw();

virtual void rotate(int);

//... };

Нақты фигураны білмей, функцияларды анықтағанда (мысалы, move және where, яғни, «қозғау" және «мұндағы"), жай сипаттай беруге болады. Қалған функциялар виртуалды сипатталынады.

Мысалы: class circle:

public shape { int radius;

public: void draw();

void rotatte(int i) {}

//... };

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]