Прочитати наступний програмний код та з’ясувати що виконує програма. Виконати даний код та занотувати у зошит , написавши коментарі кожного рядка

template <class data_t> class list {

data_t data;

list *next;

public:

list (data_t d);

void add(list *node) { node->next = this; next = 0; }

list *getnext() { return next; }

data_t getdata() { return data; }

};

template <class data_t> list<data_t>::list(data_t d)

{

data = d;

next = 0;

}

void main()

{

list<char> start('a');

list<char> *p, *last;

int i;

// создание списка

last = &start;

for(i=1; i<26; i++) {

p = new list<char> ('a' + i);

p->add(last);

last = p;

}

// вывод списка

p = &start;

while(p) {

cout << p->getdata();

p = p->getnext();

}

cout << endl;

system("pause");

}

2. Виконати програму, яка містить шаблоний клас СТЕК.Дописати методи виведення інфрмації,добавлення та вилучення.

template <class Type>

class stack

{private:

int top;

Type s[10];

publi c:

stack (): top(0)

{}

void push(Type var)

{ top++;

s[top] = var;

}

Type pop();

};

template <class Type>

Type stack<Type>::pop()

{ Type var = s[top];

top--;

return var;

}

void main()

{

stack<int> s1;

stack<float> s2;

s1.push(3);

s1.push(2);

s1.pop();

s2.push(0.5);

}

3. Написати програму, яка містить узагальненій клас (шаблонний клас) черрги. Для зразка дивитисьб ПРИМЕР 2 у теоретичних відомостях

4. Виконати приклад двух родовых типа данных

#include <iostream>

using namespace std;

template <class Type1, class Type2> class myclass

{

Type1 i;

Type2 j;

public:

myclass(Type1 a, Type2 b) { i = a; j = b; }

void show() { cout << i << ' ' << j << '\n'; }

};

void main()

{

myclass<int, double> ob1(10, 0.23);

myclass<char, char *> ob2('X', "Это проверка");

ob1.show(); // вывод значений типа int и double

ob2.show(); // вывод значений типа char и char *

system("pause");

}


ІНДИВІДУАЛЬНІ ЗАВДАННЯ

ЗАВДАННЯ № 1

Створити два об’єкта, які будуть ініціалізуватись функціями ініціалізації через вказівники на ці об’єкти.

Створити простий клас для рядків strtype, котрий містить сам рядок і її довжину. Коли створюється об'єкт strtype, для зберігання рядка виділяється пам'ять, і початкова довжина рядка встановлюється рівною нулю. Коли об'єкт strtype видаляється, ця пам'ять звільняється.

ЗАВДАННЯ № 2

Створіть клас prompt. Для виведення на екран рядка-запрошення включіть в клас конструктор. Крім рядка-запрошення конструктор повинен виконати введення набраного вами цілого. Збережіть це значення в закритой змінної count. При видаленні об'єкта типу prompt повинен бути поданий звуковий сигнал, причому стільки разів, скільки задано корисвач в змінної count.

Застосувати казівник на об'єкт.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: