Реализация функции чтения и записи может иметь вид
Void MyClass:: SetA (Int value)
{Fa = value;}
}
Int MyClass:: GetA(void);
{return Fa;}
В приведенном примере объявление класса содержит только прототипы функций, а их реализация вынесена из описания класса. Все описания функций элементов содержит ссылку на класс с помощью операции области действия (::).
Функции элемента класса имеют доступ к любым другим функциям – элементам и к любым данным – элементам как к открытым, так и к закрытым.
Клиенты класса (внешние функции) имеют доступ только к открытым функциям – элементам и данным – элементам.
Чтобы дать доступ внешним функциям, к закрытым полям класса функцию нужно объявить как друга класса с помощью спецификации Friend.
Пример:
Friend void int Fa (MyClass * )
В программе:
Void int Fa (MyClass * P)
{ P→ Fa++}
Через Р доступ к Fa.
Дружественными могут быть не только функции, но и целые классы. Иногда требуется создать объект класса как константный с помощью идентификатора const.
Чтобы не возникло ошибок при компиляции нужно снабдить все функции – элементы класса, предназначенные для чтения данных спецификаторами const.
Пример:
Int GetA(void) const – описание
КОНСТРУКТОРЫ И ДЕКОНСТРУКТОРЫ.
Конструктором класса называется открытая функция – элемент, который вызывается в момент создания объекта класса и должна инициализировать указанными в вызове значениями или значениями по умолчанию.
Конструктор имеет тоже имя, что и сам класс.
Пример:
{ public:
MyClass(void)
Private:
Int a;
}
Int a – закрытая функция класса не может инициализировать для работы.
Реализация конструктора.
Class::MyClass(void) {Int A=0}
В примере объявлен конструктор MyClass без параметров, который при создании объекта задает начальное значение поля A=0.
Создание объекта описанного классом MyClass в программе должно осуществляться соответствующей переменной.
MyClass Мс;
Или динамическим разделением в памяти:
В момент выполнения каждого из операторов не явным образом вызывается конструктор, устанавливающий начальное значение данных. Недостатком таких конструкторов является то, что все начальные значения данных задаются в них.
Вызывающая функция ни как не должна вмешаться в этот процесс и задать какое-либо другое значение. Чтобы данного недостатка избежать используется конструктор в котором все начальные значения задаются как параметры.