Visual Basic 6. Руководство разработчика

       

Закрытые и дружественные члены класса


Модули классов могут также содержать и закрытые

(private) процедуры. Эти процедуры могут быть вызваны внутри программного кода класса, но другие приложения, которые используют класс, их вызвать не могут. Если необходимо отследить, сколько раз вызывается метод в течение работы приложения, можно добавить функцию:

Private Function CallCounter() As Integer

Static Popularity As Integer

Popularity = Popularity + 1

CallCounter = Popularity

End Function

Эта функция может быть вызвана из кода класса, но приложение, использую­щее этот класс, функцию CallCounter() не видит. Так как CallCounter() - закрытая функция, она не является методом класса - это обычная функция кода класса. Можно добавить эту функцию в проект CTimer и увидеть, что к ней невозможен доступ из другого приложения.

В добавление к закрытым и общедоступным членам, классы имеют третий тип модификатора области видимости, имеющий название Friend (дружественный). Дружественные члены являются общедоступными для всего проекта и доступны всем классам проекта. Общедоступные переменные Standard ЕХЕ-проекта доступны всем другим модулям и формам. В стандартном ЕХЕ-приложении это самая широкая область видимости, которую может иметь переменная. У компонентов ActiveX, общедоступные члены которых доступны также и из других приложений, есть другой тип, который делает члены доступными из любых частей приложения, но не извне его. Запомните, что только методы (функции или процедуры) и свойства могут быть объявлены как дружественные. Переменные - только как закрытые, либо общедоступные. Это означает, что модули классов ActiveX DLL-проекта могут связываться друг с другом посредством вызова дружественных методов и свойств.



Содержание раздела