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; просмотров: 667;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.