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

Поліморфізм – це концепція яка надає можливість однотипно працювати з об'єктами різних класів за допомогою одного уніфікованого інтерфейсу, або «один інтерфейс – багато реалізацій»

Віртуальна функція (віртуальний метод) це метод класу поведінка якого може бути перевизначена у класах нащадках методами з такою самою сигнатурою. Таким чином конкретна реалізація потрібного методу буде обрана під час виконання в залежності від типу.

Приклад коду:

class Animal

{

virtual ~Animal() {}

virtual void DoSound() {}

};

class Cat : public Animal

{

void DoSound() { std::cout << "Mew!" << std::endl; }

};

class Dog : public Animal

{

void DoSound() { std::cout << "Wow" << std::endl; }

};

class Frog : public Animal

{

void DoSound() { std::cout << "Croc!" << std::endl; }

};

  1. Стандартний клас string.

Найпоширенішим типом, що вживається практично у кожному проекті, є тип string . Його можна запрограмувати самому, але вживання власного типу string створить проблеми сумісності, утруднить вживання програми в інших умовах. Тому вживають стандартний клас string , що є компонентом стандартної бібліотеки С++.

Клас string забезпечує такі можливості:

  • Створення рядка символів.

  • Ініціалізацію рядка символів символьним масивом або іншим рядком.

  • Копіювання одного рядка до іншого (присвоєння).

  • Читання та запис окремих символів рядка.

  • Порівняння двох рядків на рівність.

  • Конкатенацію двох рядків.

  • Обрахунок довжини рядка.

  • Перевірку рядка на пустоту.

  • Знищення рядка символів.

Приклади використання

string st1; // створення порожнього рядка

//створення і ініціалізація

string st2( "Приклад ініціалізації" );

string st3 = st2; //теж ініціалізація

string st4 (st2); //ще одна ініціалізація

st1 = st2; //копіювання присвоєнням

cout << st1[1]; //читання символу

st1[1] = ’п’; //заміна символу

if (st3 == st2) //порівняння рядків на рівність

cout << “рівні”;

st1 = st2 + st3; //конкатенація

st2 = st3 + ”рядка”; //теж конкатенація

st2 += st3; //конкатенація з дописуванням в кінець рядка

cout << st.size(); //обчислення довжини рядка

if ( st1.empty()) //перевірка на пустоту

cout << ”рядок порожній”;

~string st1; //знищення рядка

  1. Стандартний клас queue.

#include <queue>

За допомогою контейнера deque можна створити черга — структуру даних, організовану за принципом FIFO (“first in, first out” — “першим увійшов, першим вийшов”).

Як основу для створення черги може застосовуватися не тільки шаблонний клас deque, але й будь-яка інша послідовність, для якої передбачені функції front(), back(), push_back() і pop_front(). Зокрема, клас vector для цієї мети не підходить.

Як бачимо, у класі queue немає операції видалення останнього елемента — відповідно до принципу FIFO, операція pop видаляє тільки перший елемент, викликаючи з базового контейнера функцію pop_front(). Крім того, по тій же причині операція push вставляє новий об'єкт тільки в кінець черги, викликаючи з базового контейнера функцію push_back().

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