Програмування С, С++теорія та практика (частина 2)
2.13 Локальні класи.
Іноді клас може бути оголошений в середині функції. Такий клас носить назву локального класу (Іосаі сіазз). Функція, в якій оголошений локальний клас, не має спеціального доступу до членів локального класу, а локальний клас не може мати статичних членів- даних.
Об'єкт локального класу може бути створений лише в середині функції, в області дії оголошення класу. Усі функції-члени локального класу повинні бути оголошеними в середині оголошеного класу, тобто бути /иі/ие-функціями по замовчуванню.
#іпс1ийе<іоз'Ьгеат.Ь>
Vоій £ ^оій) ; іп£ таіп^оій)
{
// Буде викликано функцію, що містить локальний клас £() ;
ге'Ьигп 0;
}
VОІЙ £ ^оій)
{
с1азз Ьоса1 {
іп£ мЬо; риЬ1іс:
Ьоса1(іп£ а)
{
мЬо=а;
сои^<<"Конструктор локального класу"
<<мЬо<<"\п";
}
~Ьоса1(VОій)
{
сои^<<"Деструктор локального класу"
<<мЬо<<"\п";
}
} 1ос_оЬ(1), 1ос_оЬ1(2);
}
В результаті роботи даної програми ми отримаємо:
Конструктор локального класу 1 Конструктор локального класу 2 Деструктор локального класу 2 Деструктор локального класу 1
Безпосередньо у тілі функції створюються два об'єкти локального класу ІосоЬ та ІосоЬІ. Після того, як функція завершує своє існування, обидва об'єкти автоматично знищуються, про що свідчить виклик деструкторів, визначених у протоколі оголошення класу. У якому випадку може бути корисним використання локальних класів? Наприклад, це можуть бути особливі ситуації, коли об'єкти мають обмежений час існування у програмі, або у тих випадках, коли вимагається гарантійне вивільнення пам'яті під великі масиви тимчасових об'єктів, які вже виконали покладену на них конкретну місію.
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
Схожі підручники
- Соціальна психологія (частина 3)
- Бухгалтерський облік у галузях економіки (частина 1)
- Загальні питання з курсу ЕП
- Українська мова за професійним спрямуванням. Навчальний посібник (частина 2)
- Міжнародні економічні зв’язки України та її інтеграція в європейські та інші світові структури
- Загальні питання з курсу Соціологія (частина 2)
