Загальні положення 4 Частина Основи мови С++ 9



Download 1,18 Mb.
bet30/37
Sana05.08.2022
Hajmi1,18 Mb.
#846530
1   ...   26   27   28   29   30   31   32   33   ...   37
Bog'liq
Лабораторні роботи метод вказівки

Приклад рішення задачі
Див. проект «Task12».


Контрольні питання

  1. Як використовують спадкоємство в ООП?

  2. Що таке атрибути та властивості класу?

  3. Як реалізується поведінка сутності в ООП?

  4. Які типи конструкторів використовують в C++?

  5. Як реалізують доступ до схованих даних?

  6. Що таке і які бувають аксесори?

  7. Що таке стекові об’єкти?

  8. Що таке динамічні об’єкти?

  9. Які є особливості використання стекових та динамічних об’єктів?

  10. Що таке діалоговий режим роботи програми?

13 Перевантаження функцій і операторів. Друзі


Лабораторна робота №13
Мета: вивчити можливості перевантаження функцій і особливості використання дружніх стосунків в класах при розробці програм на мові С++.
Індивідуальне завдання
При розробці проекту використовувати раніше обрану прикладну область та реалізовану функціональність.
Для обробки Об’єктів 2 і 3:

  • виконати перевантаження операторів =, <<, >>;

  • в iншому класi забезпечити:

    • введення даних для об’єкта з клавіатури;

    • виведення даних екземпляра класу на термiнал у розгорнутому виглядi;

    • виведення даних екземпляра класу на термiнал у виглядi одного форматованого рядка.

Продемонструвати використання дружніх стосунків.
Термінологія
Перевантаження процедур і функцій – можливість використання однойменних підпрограм (процедур або функцій) в мовах програмування.
Перенавантажені функції мають однакове ім’я, але різну кількість або типи аргументів. Питання про те, яку з функцій викликати, вирішується за списком її аргументів. Перевантажена функція фактично являє собою кілька різних функцій, і вибір відбувається на етапі компіляції.
Перевантаження функцій дозволяє використовувати одне і те ж ім’я для кількох функцій з різними типами параметрів.
Сигнатура функції визначається:

  • ім’ям функції;

  • класом чи простором імен (namespace), що містить функцію;

  • кваліфікаторами const і volatile;

  • типами параметрів функції.

Перевантаження операторів – особливість мови C++ – дає можливість розширення сенсу операторів. Це спрощує читання програми, оскільки робить можливим інтуїтивне сприйняття.
Оператори (наприклад, +) використовуються у двох варіантах: як особлива синтаксична форма або як функція.

class One {... };


One x, y, z;
z = x + y; // Інфіксна (нормальна) форма
z = operator+(x, y); // Функціональна форма (зовнішня функція)
z = x.operator+(y); // Функціональна форма (функція класу)

Перевантажені оператори успадковують пріоритети і атрибути угруповання від вбудованих операторів. Не існує обмежень на тип значення, що повертається перевантаженим оператором, і один оператор можна перевантажувати довільне число раз за умови, що сигнатури залишаються унікальними.


Перевантаження операторів можливе у формі зовнішніх функцій.
Будь-який оператор може бути перевантажений у формі функції класу і такий спосіб перевантаження є кращим.
Найпоширеніший приклад перевантаження у формі зовнішньої функції – оператор << в бібліотеці ostream.

class String {


friend ostream& operator<<(ostream& os, const String& str);
private:
char* s;
...
};
ostream& operator<<(ostream& os, const String& str) {
os << str.s; // friend
return os;
}
void main ( void ) {
String s1 = «Hello»;
cout << s1;
}

Клас може оголосити своїх друзів (friend). Друзі компілюються звичайним чином, за винятком того, що всі захищені і закриті елементи дружнього класу видно так, немов друг є функцією цього класу. Друзями можна оголошувати глобальні функції, класи і методи класів. У всіх методах класу-друга «видно» всі елементи того класу, другом якого він є.


Друзів прийнято оголошувати спочатку, перед елементами класу і перед ключовими словами public, protected і private, т.к. на них не діють звичайні атрибути видимості.

Download 1,18 Mb.

Do'stlaringiz bilan baham:
1   ...   26   27   28   29   30   31   32   33   ...   37




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish