Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Создание объектов. Конструкторы и деструктор
C++ обеспечивает удобные способы создания и удаления объектов, через специальные процедуры создания объектов (конструкторы) и процедуру уничтожения (деструктор). Конструкторы автоматически вызываются при описании объекта, а деструкторы – при выходе из блока, в котором этот объект был описан. Если необходимые конструкторы или деструктор для класса не описаны, то транслятор создает их сам. Конструкторы имеет то же имя, что и класс, а деструкторы наследуют имена своих классов, с добавлением лидирующего знака тильда '~'. Конструкторы могут вызываться явно или неявно – через обращение во время объявления объекта. Задавая объекту параметры, вы сообщаете об их передаче непосредственно конструктору: Account myAccount(10001); Account *pExtraAccount = new Account(10002); Как и конструкторы, деструкторы могут вызываться явно (при помощи оператора С++ delete) или неявно – при выходе объекта из области действия, например: { Account myAccount(10001); Account *pExtraAccount = new Account(10002); //... delete pExtraAccount; // < < < явный вызов деструктора } // < < < неявный вызов деструктора для myAccount Класс может иметь несколько конструкторов с различными параметрами, в то время как деструктор задается один и не имеет параметров. Методы Классы С++ могут содержать в качестве своих элементов данные и функции-элементы. Функция элемент – это функция, объявленная внутри определения класса и тесно связанная с типом этого класса. Функция элемент может объявляться в пределах своего класса, но определяться где-либо в другом месте программы. Общий вид синтаксиса вызова метода выглядит как: имя_класса_объекта.имя_функции(список аргументов); В случае, если функция элемент объявлена, и определена в своем классе, то тогда она называется встроенной функцией. Это макрос-подобные функции, которые вставляются код исполнения, непосредственно в том месте откуда они вызываются – такая подстановка выполнит код функции сразу, экономя время необходимое для ее вызова. Этого же эффекта можно добиться, добавив в объявление и к телу функции, определенной вне класса ключевое слово inline. При определении функции вне класса необходимо использовать селектор области действия ':: ' между определяемым классом и функцией элементом. В члене функции ключевое слово this указывает на объект, для которого вызвана функция. То есть в функцию элемент всегда «неявно» передается указатель на объект, который вызывает эту функцию.
|