Главная » Статьи » C++ » Статьи по С++ |
Скачивать материалы с сайта, могут только зарегистрированные пользователи.
Для регистрации заполните два поля ниже!
Через минуту Вы получите "Гостевой доступ"
Конструкторы и деструкторы C++
Однако в приведённом примере не решена важная проблема: функции Alloc и Free по-прежнему надо вызывать вручную. Другая проблема данного примера — опасность оператора присваивания. Для решения этих проблем в язык были введены конструкторы и деструкторы. Конструктор вызывается каждый раз, когда создаётся объект данного типа; деструктор — при уничтожении. При преобразованиях типов с участием экземпляров классов тоже вызываются конструкторы и деструкторы. С конструкторами и деструктором класс выглядит так: class Array { Здесь Array::Array — конструктор, а Array::~Array — деструктор. Конструктор копирования (copy constructor) Array::Array(const Array&) вызывается при создании нового объекта, являющегося копией уже существующего объекта. Теперь объект класса Array нельзя испортить: как бы мы его ни создавали, что бы мы ни делали, его значение будет хорошим, потому что конструктор вызывается автоматически. Все опасные операции с указателями спрятаны в закрытые функции. Array a(5); // вызывается Array::Array(int) Оператор new тоже вызывает конструкторы, а delete — деструкторы. По умолчанию, каждый класс имеет неявно объявленные конструктор без параметров, копирующий конструктор, копирующий оператор присваивания и деструктор. Класс может иметь сколько угодно конструкторов (с разными наборами параметров), но только один деструктор (без параметров). | |
Просмотров: 947 | | |
Выразить благодарность - Поделиться с друзьями!
Всего комментариев: 0 | |