Void f()
{
А а;
// a.count++ – неможна, поле count приховане
// Зміна поля за допомогою статичного методу:
a.inc_count(); // або А::inc__count();
}
Статичні методи не можуть бути константними (const) та віртуальними (virtual).
2.4 Дружні функції і класи
Іноді бажано мати безпосередній доступ ззовні до прихованих полів класу, тобто розширити інтерфейс класу. Для цього служать дружні функції і дружні класи.
2.4.1 Дружня функція
Дружні функції застосовуються для доступу до прихованих членів класу і є альтернативою методам. Метод, як правило, використовується для реалізації властивостей об'єкту, а у вигляді дружніх функцій оформляються дії, що не представляють властивості класу, але що концептуально входять в його інтерфейс і потребують доступу до його прихованих полів.
Нижче перераховані правила опису і особливості дружніх функцій.
1. Дружня функція оголошується усередині класу, до елементів якого їй потрібен доступ, з ключовим словом friend. Як параметр їй повинні передаватися об'єкт або посилання на об'єкт класу, оскільки вказівка this їй не передається.
2. Дружня функція може бути звичайною функцією або методом іншого раніше створеного класу. На неї не розповсюджується дія специфікаторів доступу, місце розміщення її оголошення в класі байдуже.
3. Одна функція може бути дружньою відразу з декількома класами.
Приклад :
Дата добавления: 2014-12-26; просмотров: 676;