6. Компонентные
функции классов
Классы. Для представления абстракций объектов используется специальный определяемый программистом тип данных - класс. Класс – это структурный тип, используемый для описания некоторого множества объектов предметной области, имеющих общие свойства и поведение. Он описывается следующим образом:
class <имя класса>
{ private: <внутренние (недоступные) компоненты класса>;
protected: <защищенные компоненты класса>;
public: <общие (доступные) компоненты класса>;
};
В качестве компонентов в описании класса фигурируют поля, используемые для хранения параметров объектов, и функций, описывающие правила взаимодействия с ними. В соответствии со стандартной терминологией ООП функции - компоненты класса или компонентные функции можно называть методами.
Компоненты класса, объявленные в секции private, называются внутренними. Они доступны только компонентным функциям того же класса и функциям, объявленным дружественными описываемому классу. Компоненты класса, объявленные в секции protected, называются защищенными. Они доступны компонентным функциям не только данного класса, но и его потомкам.
Компоненты класса, объявленные в секции public, называются общими. Они доступны за пределами класса в любом месте программы. Именно в этой секции осуществляется объявление полей и методов интерфейсной части класса.
Поля класса всегда описываются внутри класса. В отличие от полей, компонентные функции могут быть описаны как внутри, так и вне определения класса. В последнем случае определение класса должно содержать прототипы этих функций, а заголовок функции должен включать описатель видимости, который состоит из имени класса и знака «::». Таким способом компилятору сообщается, что определяемой функции доступны внутренние поля класса:
<тип функции> <имя класса>:: <имя функции>(<список параметров>)
{<тело компонентной функции>}