class Rectang1e
14
{
private:
//длина и ширина прямоугольного объекта f1oat 1ength, width;
pиblic:
Rectang1e(f1oat = 0, f1oat = 0);
методы для нахождения и изменения закрытых данных float GetLength(void) const;
void PutLength(f1oat 1); float GetWidth(void) const; void PutWidth{f1oat w);
вычислять и возвращать измерения прямоугольника float Perimeter (void) const;
float Area(void) const;
};
Обратите внимание, что методы GetLength, GetWidth, Perimeter и Area имеют ключевое слово const после списка параметров. Это объявляет каждый метод как константный. В определении константного метода, никакой элемент данных не может быть изменен. Другими словами, выполнение метода, объявленного как const, не изменяет состояния объекта Rectangle.
Если первый спецификатор доступа опускается, начальные поля в классе являются закрытыми по умолчанию. Члены класса являются закрытыми до первого появления открытой или защищенной спецификации. С++ позволяет программисту чередовать закрытую, защищенную и открытую секции, хотя это обычно не рекомендуется.
Тема «Инициализация и разрушение объектов»
Конструктор
Функция, называемая конструктором (constructor) класса, имеет то же имя, что и класс. Подобно другим функциям С++, конструктору могут передаваться параметры, используемые для инициализации одного или более данных-полей класса. В классе Rectangle конструктору дается имя Rectangle, и он принимает параметры l и w, используемые для инициализации длины и ширины объекта, соответственно. Заметьте, что эти параметры имеют значения по умолчанию, которые указывают, что используется значение 0, когда параметр 1 или w не передается явно.
Деструктор
Динамическое выделение памяти для объектов какого – либо класса создаёт необходимость в освобождении этой памяти при уничтожении объекта. Такую возможность даёт специальный метод класса – деструктор. Так если в конструкторе класса «матрица» выделяется память для 10
15
целочисленных элементов, то в деструкторе эта память должна освобождаться.
Операторы конструктора:
int *m;
m= new int [i*j];
Операторы деструктора:
delete m;
Для деструктора предусмотрен специальный формат:
~имя_класса () { операторы деструктора}
Конструкторы и деструкторы особые члены класса, служащие для инициализации и уничтожения объекта. Ниже приведены некоторые их особенности:
они не возвращают никакого значения даже void;
не учавствуют в механизме наследования;
нельзя получить их адрес;
конструкторы не могут быть виртуальными;
автоматически вызываются при создании и уничтожении
объекта.
Конструкторы имеют тоже имя, что и имя класса. Конструктор принимающий ссылку на собственный класс, называется конструктором
копирования. Конструктор без аргументов называется пустым конструктором. Если в классе конструкторы явно не определены, то создается пустой конструктор по умолчанию. Также если пустой конструктор определен, то он используется для инициализации объекта по умолчанию.
Деструктор имеет тоже имя, что и имя класса, но перед именем ставится знак ~. При инициализации объекта, вначале инициализируются его родительские объекты в порядке включения.
Объявление объекта
Объявление класса описывает новый тип данных. Объявление объекта типа класс создает экземпляр (instance) класса. Это делает реальным объект типа класс и автоматически вызывает конструктор для инициализации некоторых или всех данных-членов класса. Параметры для объекта передаются конструктору заключением их в скобки после имени объекта. Заметьте, что конструктор не имеет возвращаемого типа, поскольку вызывается только вовремя создания объекта:
ClassName object («parameters»); //список параметров может быть пустым
Do'stlaringiz bilan baham: |