Теоретична частина
1. Дайте відповідь на запитання:
a) Охарактеризуйте основні підходи до перевизначення операторів додавання «+» та присвоєння «=».
b) Здійсніть аналіз основних понять про узагальнені класи. Створення класу з двома узагальненими типами даних.
2. Вкажіть правильну відповідь:
3.1. Якщо мається код
class A {public: int a, b, c;};
A obj;
як звернутися до члена класу c?
==========================================================
а) obj.c;
б) obj-> a-> b;
в) obj-> b;
г) obj-> a.b.
3.2. Яке вірне оголошення віртуальної функції, яка приймає одне цілочисельне значення і повертає void:
а) void SomeFunction (int);
б) virtual SomeFunction (int);
в) virtual SomeFunction ();
г) virtual void SomeFunction (int).
3.3. Якими за замовчуванням оголошуються елементи структури?
а) private;
б) public;
в) protected;
г) за умовчанням не оголошуються.
3.4. Відзначте правильні оголошення змінних
а) const int s = 10; int a [s];
б) int s = 10; const int a [s];
в) int s = 10; int a [] = new int [s + s].
Практична частина
Розв’яжіть наступну задачу.
2.1. Створити шаблонну функцію, що змінює порядок елементів таким чином: перша половина списку зміщується в кінець, а друга в початок. На приклад: 1 2 3 4 5 6 - 4 5 6 1 2 3. Функція повинна працювати з масивом будь-якої довжини. Якщо кількість елементів непарна, то середній елемент обробляти не потрібно.