Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ДЕК ооп_відповді.doc
Скачиваний:
66
Добавлен:
12.02.2016
Размер:
240.64 Кб
Скачать

Запитання вартістю 3 бали ( найвища складність 78 пит.)

  1. Виклик методу об’єкту можливий через

  • Вказівник на метод класу

  • Вказівник на метод об’єкту

  • Вказівник на глобальну функцію.

  1. Що резервує пам'ять – оголошення чи визначення?

  • Пам’ять резервується визначенням змінних і класів.

  • Пам’ять резервується оголошення змінних, а оголошення класів пам’ять не резервує.

  • Пам’ять резервується оголошенням змінних і класів.

  1. Інтерфейсом класу є?

  • Набір захищених членів класу.

  • Усі не приватні члени класу.

  • Набір відкритих членів класу.

  1. В чому різниця між відкритими (public) і закритими (private) членами-даних?

  • До відкритих членів класу доступ мають усі користувачі даного класу, а до закритих – тільки сам клас та дружні функції (чи дружні класи).

  • До відкритих членів класу доступ мають усі користувачі даного класу, а до закритих – тільки сам клас та похідні класи.

  • До відкритих членів класу доступ мають тільки сам клас і похідні класи, а до закритих – тільки сам клас та дружні функції (чи дружні класи).

  1. Як ініціалізуються змінні, які є приватними статичними членами класу??

  • Через похідні класи

  • Статична змінна ініціалізується автоматично

  • Статичні члени можуть бути виключно відкритими, а тому ініціаліалізувати закритий неможливо.

  • Через вкладені класи.

  1. Посилання на новий об'єкт повертає?

  • Конструктор по замовчуванні

  • Оператор присвоєння.

  • Оператор new

  1. Чи мають якісь привілегії вкладені класи по відношенню до зовнішніх?

  • Так.

  • Ні.

  • Мають доступ тільки до відкритих членів зовнішнього класу.

  1. Чи мають якісь привілегії зовнішні класи по відношенню до вкладених в них класів?

  • Так.

  • Ні.

  • Мають доступ тільки до відкритих і захищених членів вкладеного класу.

  1. Якщо оголосити два об’єкти класу Cat, то чи можуть вони мати різні значення звичайного члена данихint itsAge?

  • Так.

  • Ні.

  • Так, за умови спеціальних оголошень.

  1. Чи потрібно оголошення класу закінчувати крапкою з комою? А визначення методів класу?

  • Оголошення методів завжди завершується крапкою з комою, а оголошення класів – ні.

  • Оголошення класу завжди завершується крапкою з комою, а визначення методів – ні.

  • Оголошення методів і визначення класів завжди завершується крапкою з комою.

  1. Як виглядав би заголовок члена-функції MeowкласуCat, яка немає ніяких параметрів і повертає значенняvoid?

  • Cat::Meow(void);

  • void Meow(void);

  • void Cat::Meow();

  1. Яка функція викликається для ініціалізації класу?

  • Конструктор.

  • Деструктор.

  • Віртуальний метод.

  • Статичний метод.

  1. Чим відрізняються глобальні статичні функції від статичних функцій-методів класу?

  • Оператором доступу.

  • Областю дії

  • Областю видимості.

  • Нічим не відрізняються.

  1. Чи може шаблоний клас бути абстрактним??

  • Ні.

  • Так.

  • Так, але за додаткових умов.

  1. Чим відрізняється оператор непрямого доступу (*) від оператора звертання за адресою (&)?

  • Оператор непрямого доступу (*) повертає значення за адресою, а оператор звертання за адресою (&) – адресу змінної.

  • Оператор непрямого доступу (*) повертає адресу змінної, а оператор звертання за адресою (&) – значення за адресою.

  • Між ними немає відмінностей.

  1. Що створено наступним оголошенням const int * ptrOne?

  • Константний вказівник.

  • Постійний вказівник на константу.

  • Вказівник на константу.

  1. Що створено наступним оголошенням int * const ptrTwo?

  • Вказівник на константу.

  • Константний вказівник.

  • Постійний вказівник на константу.

  1. Який оператор спричинює виклик деструкторів об’єктів, які є елементами масиву?

  • delete.

  • delete [].

  • Обоє наведені оператори викличуть деструктори.

  1. Що таке постійне посилання?

  • Скорочений варіант визначення постійного вказівника на довільну змінну.

  • Такого поняття не існує.

  • Скорочений варіант визначення посилання на постійний об’єкт.

  1. Чим відрізняються версії перевантажених функцій?

  • Типом і кількістю параметрів.

  • Типом значень, які повертаються функціями.

  • Типом і кількістю параметрів та типом значень, які повертаються функціями.

  1. Коли викликається конструктор копії?

  • Завжди, коли створюється тимчасова копія об’єкту.

  • Завжди, коли створюється об’єкт як копія існуючого.

  • В обох наведених випадках.

  1. Коли викликається деструктор?

  • При виклику оператора delete.

  • В обох наведених випадках.

  • При знищенні локального об’єкта.

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

  • Конструктор копії.

  • Оператор присвоєння.

  • Оператор порівняння.

  1. Що являє собою вказівник this?

  • Адресу класу.

  • Адресу об’єкта.

  • Адресу члена класу.

  • Адреса члена об’єкту.

  1. Чим відрізняється перевантаження префіксних і постпрефіксних операторів інкременту?

  • Логічним прапорцем bool.

  • Перевантаження префіксних і постпрефіксних операторів в класах не підтримується.

  • Логічним прапорцем int.

  1. Чи можна перевантажити operator+ для змінних типу short int ?

  • Так.

  • Ні.

  1. Чи можна в мові C++ перевантажити operator++ так, щоб він виконував операцію декременту (зменшення)?

  • Так.

  • Ні.

  1. Який тип повинна повернути функція оператора приведення типів?

  • Посилання на клас, в якому перевантажується оператор приведення.

  • Тип, стосовно якого здійснюється приведення.

  • Оператор приведення типу не повертає значень.

  1. Для чого потрібна попередня декларація класу?

  • Для попереднього створення копій класу;

  • Для попереднього створення посилань на копії класу;

  • Для організації функцій із параметром, який є посиланням на об'єкт класу

  • Для організації функцій із параметром, який є копією класу.

  1. Чи можна викликати функцію, якщо відома конкретна фізична адреса?

  • Так

  • Ні.

  1. Що таке інкапсуляція?

  • Об’єднання віртуальних методів класу в один закритий блок.

  • Об’єднання даних і функцій класу в один закритий блок.

  • Об’єднання статичних членів усіх класів ієрархії наслідування в один закритий блок.

  1. Чи можуть конструктор та деструктор оголошуватись віртуальними?

  • Конструктор - ні, деструктор – так.

  • Конструктор - так, деструктор – ні.

  • Конструктор - так, деструктор – так.

  • Конструктор - ні, деструктор – ні.

  1. Як виглядає оголошення віртуального конструктора класу A?

  • virtual A::A(){}.

  • Оголошувати конструктор віртуальним заборонено.

  • virtual A::~A(){}.

  1. Як викликати наслідувану функцію базового класу через об’єкт похідного класу, якщо в похідному класі ця функція не була переозначена?

  • Тільки через посилання на батьківський клас.

  • Тільки через вказівник на метод батьківського класу.

  • Як звичайний метод.

  1. Як викликати функцію базового класу через об’єкт похідного класу, якщо в похідному класі ця функція була переозначена?

  • Як звичайний метод.

  • За допомогою оператора дозволу дії (::).

  • Переозначений в похідному класі метод батьківського класу викликати заборонено.

  1. Якщо в базовому класі функція оголошена віртуальною, а в похідному класі ключове слово virtual при переозначені цього класу не використано, то чи буде ця функція віртуальною при успадковуванні її класом третього рівня?

  • Так.

  • Ні.

  1. Для яких користувачів доступні члени класи, які оголошені в секції protected?

  • Для класу, похідного класу та для дружніх класів чи дружніх функцій.

  • Для екземплярів класу, похідного класу та для дружніх класів чи дружніх функцій.

  • Для класу, дружніх функцій та для екземплярів сторонніх класів.

  1. Що таке приведення типу об’єкта вниз?

  • Вказівник на похідний клас приводиться до типу вказівника на батьківський клас.

  • Вказівник на клас однієї ієрархії приводиться до типу вказівника на довільний клас іншої ієрархії.

  • Вказівник на батьківський клас приводиться до типу вказівника на похідний клас.

  1. Що таке v-ptr?

  • Зміщення в таблиці віртуальних функцій.

  • Вказівник на таблицю віртуальних функцій.

  • Вказівник на адресу об’єкта.

  1. Нехай, для створення прямокутника із заокругленими кутами використовується клас RoundRect, який є похідним від двох базових класів – Rectangle і Circle, які, в свою чергу, походять від спільного класу Shape. Скільки об’єктів класу Shape створюється при створенні одного об’єкта класу RoundRect?

  • Одна копія класу Shape.

  • Дві копії класу Shape.

  • Три копії класу Shape.

  • Чотири копії класу Shape.

  1. Нехай, для створення прямокутника із заокругленими кутами використовується клас RoundRect, який є похідним від двох базових класів – Rectangle і Circle, які, в свою чергу, віртуально походять від спільного класу Shape. Скільки об’єктів класу Shape створюється при створенні одного об’єкта класу RoundRect?

  • Одна копія класу Shape.

  • Дві копії класу Shape.

  • Три копії класу Shape.

  • Чотири копії класу Shape.

  1. Якщо класи Horse (кінь) і Bird (птах) віртуально унаслідуються від класу Animal як відкриті, то чи будуть конструктори цих класів ініціалізовувати конструктор класу Animal?

  • Ініціалізація конструктора батьківського класу повністю допускається.

  • Правила мови забороняють управління конструктором віртуально наслідуваного класу.

  • Керування конструктором батьківського класу ігнорується.

  1. Оголосіть клас Vehicle (транспортний засіб) як абстрактний тип даних.

  • class Vehicle

{

virtual void Move()=0;

};

  • class Vehicle

{

void Move() {};

};

  • class Vehicle

{

abstract void Move() {};

};

  1. Якщо базовий клас оголошений як абстрактний і містить три чисто віртуальні функції, то скільки з них достатньо переозначити в його не абстрактних похідних класах?

  • Усі три.

  • Жодної не потрібно.

  • Принаймні одну.

  1. Якщо базовий клас оголошений як абстрактний і містить три чисто віртуальні функції, то скільки з них треба переозначувати в його похідних класах?

  • Необхідно переозначувати усі три.

  • Можна жодної не переозначувати.

  • Принаймні одну.

  1. Чи можуть статичні змінні-члени бути закритими?

  • Так.

  • Ні.

  • Тільки статичні члени даних.

  1. Що таке дружня функція?

  • Функція, яка має доступ до захищених і відкритих членів класу.

  • Функція, яка має доступ до статичних членів класу.

  • Функція, яка має доступ до усіх членів класу.

  1. Який клас вважається дружнім?

  • Клас, який має доступ до захищених і відкритих членів класу.

  • Клас, який має доступ до усіх членів іншого класу.

  • Клас не може оголошуватись дружнім.

  1. Якщо клас Dog оголошений як дружній класу Boy, то чи буде Boy дружній до Dog?

  • Так.

  • Ні.

  1. Якщо клас Dog оголошений як дружній класу Boy, Terrier походить від Dog, то чи буде Terrier дружній до Boy?

  • Так.

  • Ні.

  1. Якщо клас Dog оголошений як дружній класу Boy, а Boy дружній до Horse, то чи буде клас Dog дружній до Horse?

  • Так.

  • Ні.

  1. Де потрібно розміщувати оголошення дружньої функції?

  • За межами тіла класу.

  • При оголошенні прототипу функції.

  • В тілі класу.

  1. Чим cin.read() відрізняється від cin.getline()?

  • Функція cin.read() призначена для читання структур бінарних даних, а функція cin.getline() – для читання з буфера istream.

  • Функція cin.getline()призначена для читання структур бінарних даних, а функція – cin.read()для читання з буфера istream.

  • Функція cin.getline()для читання з буфера ostream, а функція – cin.read()для читання з буфера istream.

  1. Яке значення повертає оператор витягування з потоку (>>)?

  • Посилання на об’єкт класу ios.

  • Посилання на об’єкт класу iostream.

  • Посилання на об’єкт класу іstream.

  • Посилання на об’єкт класу ofstream.

  1. Яке значення повертає оператор вставки в потік (<<)?

  • Посилання на об’єкт класу ios.

  • Посилання на об’єкт класу iostream.

  • Посилання на об’єкт класу ifstream.

  • Посилання на об’єкт класу оstream.

  1. Який параметр приймає конструктор об’єкту ofstream?

  • Ім’я файлу, який відкривається.

  • Ім’я нового потоку виводу.

  • Ім’я пристрою виводу.

  1. Що робить прапорець ios::ate?

  • Встановлю режим читання в “бінарний”.

  • Відкриває файл в режимі “читання”.

  • Вставляє точку вводу в кінець файлу.

  1. Чи можна використовувати імена, які оголошенні в просторі імен без ключового слова using?

  • Можна без жодних застережень.

  • Не можна.

  • Можна за умови використання додаткових специфікаторів.

  1. Де доступні змінні неіменованого (анонімного) простору імен?

  • Тільки в межах блоку трансляції.

  • Тільки в межах простору.

  • Абсолютно недоступні.

  1. Що таке стандартний простір імен std?

  • Глобальний простір, стосовно якого усі простори імен є вкладеними.

  • Простір, в якому оголошено ідентифікатори бібліотеки С++.

  • Простір виключно потокової бібліотеки вводу/виводу.

  1. В чому різниця між шаблоном функції і макросом?

  • Шаблони здійснюють перевірку типів.

  • Макроси здійснюють перевірку типів.

  • Між ними не існує жодної різниці.

  1. В чому різниця між параметром в шаблоні функції і параметром у функції?

  • Між ними не існує різниці, обидва використовуються виключно для передавання даних в тіло функції при її виклику.

  • Параметр шаблону функції використовується для визначення типу екземпляру шаблону, а параметри функції – для передавання даних в область стеку.

  • Параметри функції можуть мати аргументи по замовчуванні, а параметри шаблону функції – ні.

  1. Чи можна шаблон функції перевантажувати звичайною функцією?

  • Так

  • Ні.

  1. Функції-члену класу завжди доступні дані?

  • класу, членом якого він є;

  • будь-якого об'єкта класу, членом якого він є;

  • класу, оголошеного відкритим.

  1. Чи може параметр шаблону функції приймати значення по замовчуванні?

  • Так , у будь-якому випадку.

  • Так, лише як метод шаблону.

  • Ні , в жодному випадку

  1. Що може бути аргументом по замовчуванні для параметра шаблону функції?

  • Тільки тип.

  • Тільки літеральне значення.

  • Шаблон функції не може приймати аргумент по замовчуванні.

  • Тип або літеральне значення.

  1. Чи можна зробити поведінку одного екземпляра шаблона відмінним від інших?

  • Так.

  • Ні.

  • Оголошувати статичні члени в шаблонах класу заборонено.

  1. Що таке виключення?

  • Об’єкт, який створюється за допомогою оператора new.

  • Об’єкт, який створюється за допомогою оператора throw.

  • Об’єкт, який створюється за допомогою оператора dynamic_cast.

  1. Що являє собою блок try?

  • Блок операторів, в якому обробляються виключення.

  • Блок операторів, в якому можливі виникнення виключення.

  • Блок операторів, в якому перехоплюються виключення.

  1. Яку інформацію може містити виключення?

  • Виключення – це змінна виключно типу int, яка уособлює номер помилки.

  • Виключення – це змінна виключно рядкового типу (сhar*), яка уособлює опис помилки.

  • Виключення – це об’єкт, який може містити будь-яку інформацію.

  1. Коли створюється об’єкт виключення?

  • Об’єкт виключення створюється при виклику оператора new.

  • Об’єкт виключення створюється при виклику оператора static_cast.

  • Об’єкт виключення створюється при виклику оператора throw.

  1. Як можна передавати виключення?

  • За значенням, за вказівником або як посилання.

  • Виключно як посилання.

  • Виключно за значенням, або як посилання.

  1. Чи буде оператор catch обробляти виключення похідного класу, якщо він очікує виключення базового?

  • Так.

  • Так, виключно за умови явного приведення об’єкту похідного класу до типу базового класу.

  • Ні, оскільки не працює механізм автоматичного приведення.

  • Ні.

  1. Якщо використовуються два оператори catch: один – для базового, а другий – для похідних типів виключення, який із них потрібно розмістити першим?

  • Першим треба розміщати оператор catch стосовно похідного класу.

  • Першим треба розміщати оператор catch стосовно базового класу.

  • Це не має значення.

  1. Що робить оператор catch(…)?

  • Поширює будь-яке виключення на зовнішні обробники.

  • Перехоплює виключення будь-якого типу.

  • Забороняє генерувати нове виключення при обробці попереднього.

  1. Продовжіть речення

Статичний метод класу

  • як метод класу, автоматично отримує вказівник this.

  • не може викликатись без створення хоча б одного екземпляру класу.

  • є спільний для усіх об’єктів класу.

  1. Чи можна перевантажувати статичні методи класу?

  • Так.

  • Ні.

  • Тільки у випадку, коли в класі усі члени є загальнодоступними.

  1. Чи можна переозначувати статичні методи в похідних класах?

  • Так.

  • Ні.

  • Тільки у випадку, коли в батьківському класі статичні методи є захищеними.

  1. Чи можна статичний метод оголосити віртуальним?

  • Так.

  • Ні.

  • Тільки у випадку, коли в батьківському класі статичні методи є відкритими або захищеними.

  1. Чи правильним є таке твердження: клас може мати більше одного конструктора з одним і тим самим іменем?

  • ні, бо конструктор може мати тільки одне ім'я – ім'я класу;

  • так, бо поряд зі звичайним конструктором можуть бути декілька параметризованих;

  • ні, бо кожен конструктор повинен мати різні імена;

  • так, бо будь-який конструктор може мати тільки одне ім'я – ім'я класу

  1. Функції-члену класу завжди доступні дані:

  • об'єкта, членом якого він є;

  • класу, членом якого він є;

  • будь-якого об'єкта класу, членом якого він є;

  • класу, оголошеного відкритим.

  1. Єдиною формальною відмінністю між структурами і класами у мові C++ є те, що:

  • функції-члени класу за замовчуванням у класі є відкритими, але закритими у структурах;

  • члени даних класу за замовчуванням у класі є закритими, але відкритими у структурах;

  • члени даних класу і функції-члени класу за замовчуванням у класі є відкритими, але за-критими у структурах;

  • члени даних класу і функції-члени класу за замовчуванням у класі є закритими, але відк-ритими у структурах..

  1. Припускаючи, що функція-член класу getcrow()визначена поза класом, як оголосити її усередині класу?

а)

б)

в)

г)

class leverage {

private:

void pry();

int getcrow();

public:

int crowbar;

leverage()

{crowbar = 0;}

};

int leverage::getcrow()

{return crowbar;}

class leverage {

private:

int crowbar;

public:

void pry();

int getcrow()=0;

leverage()

{crowbar = 0;}

};

int leverage::getcrow()

{return crowbar;}

class leverage {

private:

int getcrow();

leverage()

{crowbar = 0;}

public:

int crowbar;

void pry();

};

leverage int::getcrow()

{return crowbar;}

class leverage {

private:

crowbar int;

public:

pry void ();

int getcrow ;

leverage()

{crowbar = 0;}

};

int::leverage getcrow()

{return crowbar;}

  • a.

  • б

  • в

  • г

  1. Перевантаження операцій

  • надає операціям мови C++ більше, ніж вони можуть обробити;

  • перетворює операції (operator) мови C++ для роботи з об'єктами;

  • дає змогу повторювати наявні у мові C++ операції;

  • створює нові операції мови C++.

  1. Чи правильним є таке твердження: операція >= може бути перевантажена?

  • так, бо вона належить до таких, які можна перевантажувати;

  • ні, бо вона не належить до таких, які можна перевантажувати;

  • так, бо перевантажувати можна будь-які операції;

  • ні, бо перевантажувати можна тільки такі операції: +, -, *, /.

  1. 11. Яке з записаних повних визначень для перевантаженої операції в класі CounterпрограмиCountpp1, яка замість збільшення лічильника, зменшує його:

а)

б)

в)

г)

class Counter {

private:

int cout;

public:

void operator--()

{ cout--;}

};

class Counter {

public:

int cout;

private:

void operator--()

{ cout--;}

};

class Counter {

private:

int cout;

public:

void operator--();

};

void Counter::operator--()

{ cout--;}

class Counter {

private:

int cout;

public:

void operator--()

{ cout--;}

};

  • a

  • б

  • в

  • г

  1. Скільки аргументів потрібно для визначення перевантаженої унарної операції?

  • хоча б один;

  • зовсім не потрібно;

  • два аргументи;

  • як аргумент передається покажчик на об'єкт.

  1. Єдиною формальною відмінністю між структурами і класами у мові C++ є те, що:

  • функції-члени класу за замовчуванням у класі є відкритими, але закритими у структурах;

  • члени даних класу за замовчуванням у класі є закритими, але відкритими у структурах;

  • члени даних класу і функції-члени класу за замовчуванням у класі є відкритими, але за-критими у структурах;

  • члени даних класу і функції-члени класу за замовчуванням у класі є закритими, але відкритими у структурах.

  1. Чи правильним є таке твердження: перевантажена операція завжди вимагає на один аргумент менше, ніж кількість операндів?

  • ні, якщо операнди є об'єктами різних класів;

  • так, якщо операнди є об'єктами одного класу;

  • ні, бо одним з операндів може бути змінна стандартного типу;

  • так, бо операндами є змінні стандартного типу.

  1. Коли перевантажуєтьсяоперація арифметичного присвоєння, то результат:

  • передається об'єкту праворуч від операції;

  • передається об'єкту, який розташований зліва від поточної операції;

  • передається об'єкту, що викликав операцію;

  • повинен бути повернений іншій функції.

  1. Нехай визначено три об'єкти не віртуального класу. Скільки копій функцій-членів класу міститься у пам'яті?

  • одна;

  • дві

  • три

  • жодної

  1. Константна функція-член класу, викликана для об'єкта класу:

  • може змінювати як неконстантні, так і константні члени даних класу;

  • може змінювати тільки неконстантні члени даних класу;

  • може змінювати тільки константні члени даних класу;

  • не може змінювати як неконстантні, так і константні члени даних класу.

  1. Чи правильним є таке твердження: об'єкт, оголошений як константний, можна викори-стовувати тільки за допомогою константних функцій-членів класу?

  • ні, його можна використовувати за допомогою будь-яких функцій;

  • так, його можна використовувати тільки за допомогою константних функцій;

  • ні, його можна використовувати тільки за допомогою неконстантних функцій;

  • так, його можна використовувати за допомогою функцій-"друзів" класу;

  1. Посилання повідомлення об'єкту еквівалентне

  • ініціалізації об'єкта;

  • його знищенню;

  • виклику однієї з його функцій;

  • виклику конструктора класу.

  1. Операція крапки (операція доступу до члена класу) об'єднує такі два елементи (зліва направо?

  • член класу і об'єкт класу;

  • об'єкт класу і клас;

  • клас і член цього класу;

  • об'єкт класу і член цього класу;

  1. Для перетворення від визначеного користувачем класу до основного типу можна використовувати

  • вбудовану операцію приведення;

  • конструктор з одним аргументом;

  • перевантажену операцію =;

  • операцію приведення, яка є членом класу..

  1. Чи правильним є таке твердження: вираз objA = objBбуде причиною помилки компілятора, якщо об'єкти різних типів?

  • так у випадку, якщо є конструктор, інакше – ні;

  • ні у випадку, якщо є програма перетворення, інакше – так;

  • ні у випадку, якщо є перевантажений оператор присвоєння, інакше – так;

  • так у випадку, якщо є перевантажений оператор присвоєння, інакше – ні.

  1. Для перетворення від основного типу до визначеного користувачем можнавикористовувати:

  • вбудовану операцію приведення;

  • конструктор з одним аргументом;

  • перевантажену операцію =;

  • операцію приведення, яка є членом класу.

  1. Чи правильним є таке твердження: якщо визначається конструктор, який містить визначення типу aclassobj = intVar;, то можна також записати вираз типуobj = intVar;?

  • ні, можна використовувати тільки вбудовану операцію перетворення;

  • ні, можна використовувати операцію перетворення, яка є членом класу.

  • ні, вираз присвоєння використовувати не можна;

  • так, можна використовувати вираз присвоєння

  1. Якщо об'єкт objA належить класу А, а об'єкт objB належить класу В, а Ви хочете записати objA = objB і помістити функцію перетворення в клас А, то який тип процедури перетворення Ви можете використовувати?

  • конструктор;

  • конструктор копії;

  • вбудовану операцію перетворення;

  • операцію перетворення, яка є членом класу.