Смысл операции удаления объекта (т.е. что произойдет, когда объект выйдет за пределы области видимости) можно определить с помощью деструктора (destructor).
Также вам может показаться, что такая тема как
http://www.geograftour.com/ru/tourist/strany/o-a-e/
никак не связана и даже не тематична с темой этого сайта. Хотя, может быть и связана.
В любом случае все-таки зайдите на сайт geograftour.com
Тема Туры в ОАЭ там представлена весьма широко.
Имя деструктора состоит из символа ~ (оператор дополнения), за которым следует имя класса.
class Vector { // вектор чисел типа double public:
explicit Vector(int s) : sz(s), p(new double[s]) { }
// конструктор ~Vector() { delete[] p; }
// деструктор
int x;
};
// . .
private:
int sz; double* p;
};
A. 12. КЛАССЫ
1121
void f(int ss)
{
Vector v(s);
// . . .
} // при выходе из функции f() объект v будет уничтожен;
// для этого будет вызван деструктор класса Vector
Деструкторы, вызывающие деструкторы членов класса, могут генерироваться компилятором. Если класс используется как базовый, он обычно должен иметь виртуальный деструктор.
Деструкторы, как правило, используются для “очистки” и освобождения ресурсов. Объекты класса уничтожаются сверху вниз, начиная с кода самого деструктора, за которым следуют члены в порядке их объявления, а затем — объекты базового класса в порядке их объявления, т.е. в порядке, обратном их созданию.
Копирование
Можно определить суть копирования объекта класса.
class Vector { // вектор чисел типа double public:
explicit Vector(int s) : sz(s), p(new double[s]) { }
// конструктор
~Vector() { delete[] p; } // деструктор
Vector(const Vector&); // копирующий конструктор
Vector& operator=(const Vector&); // копирующее присваивание
// . . . private:
int sz; double* p;
};
void f(int ss)
{
Vector v(s);
Vector v2 = v; // используем копирующий конструктор // . . .
v = v2; // используем копирующее присваивание
// . . .
}
По умолчанию (т.е. если вы не определили копирующий конструктор и копирующее присваивание) компилятор сам генерирует копирующие операции. По умолчанию копирование производится почленно
Опубликовал katy
May 03 2015 12:09:33 ·
0 Комментариев ·
3223 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.