|
||||||
|
|
|
|
|
|
Урок 9: Конструкторы и ДеструкторыВ прошлом уроке я употребил два незнакомых вам слова "конструктор" и "деструктор". Итак, чтоже это такое, и зачем оно нужно? КонструкторыПри создание очередного экземпляра класса часто возникает необходимость начальной инициализации некоторых переменных. Для этой цели и служит конструктор. При создании экземпляра класса автоматически вызывается конструктор. Имя функции конструктора всегда совпадает с именем класса. Ниже представленн код объявления и реализации конструктора класса CMyClass.
Бывают так же и такие ситуации, когда для правильной начальной инициализации необходима некоторая входная информация. Для этой цели служат конструкторы с параметрами. Параметров в конструкторе может быть сколько угодно. Ниже представлен пример использования конструктора с одним целочисленным параметром для инициализации переменной класса.
Надо сказать, что конструкторов в классе может быть несколько, и использовать можно тот, который больше всего подходит для той или иной ситуации. Приведу пример:
ДеструкторыДеструкторы - функции, выполняющие деинициализацию элементов класса. Зачем это нужно? Приведу пример. Представте себе, что в классе есть несколько инициализованных указателей. Если удалить экземпляр класса просто так, то возможна утечка памяти, т.е. элементы класса в "куче" так и будут висеть в ней до конца выполнения программы. Можно, конечно, исхитрятся и каждый раз писать удаление элементов из "кучи" вручную, но это долго, неудобно, а самое главное не нужно. Достаточно лишь прописать строки удаления в деструкторе, который будет вызываться при удалении каждого экземпляра класса. Деструктор таже, как и конструктор носит имя класса, но перед ним идет знак "~". Приведу пример деструктора класса CMyClass:
Последнее, что надо сказать о деструкторах, это то, что в одном классе не может быть более одного деструктора. Стоит упамянуть ещё о том, что не бывает деструкторов с параметрами. |
© 2005 сайт VisualCBook.narod.ru © 2005 Кадров Никита |