Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2. Программалау.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
166 Кб
Скачать
☆

Класстар иерархиясын құру

class work_station : public computer

{ public:    work_station (char *operating_system, char *name, int hard_disk, float floppy, char *screen, long colors, int x_res, int       y_res, int processor, int speed, int RAM);    void show_work_station(void); private:    char operating_system[64]; };

Мысал:

class A

{

public:

virtual void f1()=0;

//.....

};

class BB : public A

{

public:

void f1();

};

class СС : public A

{

public:

void f1();

};

class DD : public A

{

public:

void f1();};

class EE : public A

{

bool bsign;

public:

CC objC;

DD ojbD;

void f1(0;};

void EE::f1()

{

if (bsign)

objC.f1();

else

objD.f1();}

12. Класс шаблондары, қызметі ерекшелігі.

Шаблон С++ тілінің жалпылама алгоритмдерді ешқандай жалғаусыз кодттауға арналған құралы. С++ те класс шаблонын жасауға мүмкіндік бар. Шаблондармен параметрлік класстар мен функция жасауға болады. Параметр ретінде кез келген тип бола алады.

Template кілттік сөзіе қолданып және тип символдарымен (Т, T1 и Т2) біздің прогр класс шаблонын жасай алады. Обьект классын шаблон арқ жасау үшін элементтерді жариялау кезінде класс атына сілтеме жасаймыз олар (<int, float >)мынадай жақша ішінде болады әрқасысына компиляторға символ тағайындап оған айнамалысына ат береді , параметр типін және функцияның кері қайтарытын мәнін көрсету керек.

Егер класста біз иницилизациялаған мәліметтер конструкторы болса, оны шақыруға болады . Шаблонды қолдану арқылы шақырамыз class_name<int,float>values(200);.Егер С++ компиляторы обьект шақыруын тапған жағдайда шаблон классын тиісінше тип бойынша жасайды.

Класс шаблоны

template< class T >

class List

{

/* ... */

public:

void Add( const T& Element );

bool Find( const T& Element );

/* ... */

};

Шаблонды қолданатын кезде онын параметрін көрсету қажет

List<int> li;

List<string> ls;

li.Add( 17 );

ls.Add( "Hello!" );

Шаблон параметрі ретінде параметре типі, қарапайым параметр типі, шаблон параметрі бола алады.

template< class T1, // параметр-тип

typename T2, // параметр-тип

int I, // қарапайым тип параметрі

T1 DefaultValue, // қарапайым тип параметрі

template< class > class T3, // параметр-шаблон

class Character = char // параметр по умолчанию

>Массив классын жасаймыз десек, int типті массивімен жұмыс істесек , класс былай болады

Сlass array {

Public:

Array (int size );

Long sum (void);

Int average_value (void);

Void show_array(void);  int add_value(int);

private:

int *data;

int size;

int index;

};

13. Виртуалдық, достық, статикалық қызметтер. This көрсеткіші

Базалық класс жаңа атрибуттармен және операциялармен бірге дамиды.Туынды класта әдетте жаңа деректердің мүшелері, ерекшеліктері мен әдістері жарияланады. Достық функция туынды кластың барлық осы сәттегі ішкі кластардың мүшелерінің барлығына мүмкіндік береді.

class className

( 1

public: ~

className(); // Конструктор по умолчанию // Другие конструкторы friend returnType friendFunction(<список параметров>) ;

};

Виртуалды әдіс базалық кластың функцияларын қайта анықтау үшін қолданылады.

jclass classNamel {

// Другие функции-члены

virtual returnType functionName(<список параметров>) ;

};

Статикалық функция Static орындауға рұқсат етілген модификатор негізінде оырндалады. Статикалық әдіс кластың объектісінің жасалуынсыз орындалады.

Бірнеше объектінің класс элеметтерін бірлескен түрде пайлануы үшін әрбір қадамды (шаги) орындауымыз керек.

#include <stdio.h>

class print

{

public:

static void text(const char* string);

};

void print::text(const char* string)

{

printf(string);

}

int main()

{

print::text("Hello world!"); //Используем красивое вложение функции text из print;

}

Алдымен операторларды іске қоспастан бұрын, перегруженных оператордың ингредиенті болып табылатын с++ тіліндегі This кілттік сөзімен танысу керек. This көрсеткіші барлық арқаратын функция-мүшелерінің айқын емес параметрлерімен қызмет етеді. Функция –мүшесін шақырғанда, автоматты түрде көрсеткіш осы сәттегі функция болып табылатын объектке жіберіледі. This пайдалану арқылы сілтеуішке мүмкіндік алуға болады. This көрсеткішін берместен бұрын оны екі жай функцияларға бөліп аламыз: setData() и getData(). Біреуі пайдаланушыға мәліметтерді енгізуге ұсынады, екіншісі сәйкесінше экранға шығарып береді.

#include <iostream>

 

using namespace std;

 

void setData(char *s, int &n) //функция для принятия данных

{

    cout << "Введите строку: ";

    cin.getline(s, 128);

    cout << "Введите целое число: ";

    cin >> n;    

}

 void getData(char s[], int n) //отображение данных

{

    cout << "\n" << s << n << endl << endl;  

}

 int main()

{

    setlocale(LC_ALL, "rus");

 

    char str[128] = ""; //объявляем и инициализируем переменные для очистки от мусора

    int number = 0;   

  setData(str, number);

 //вызов функций        system("cls"); 

//очистка экрана перед выводом данных на экран    getData(str, number); 

return 0;

}