Читайте также:
|
|
Используется: а) если объект – локальный и ему динамически выделялась память, целесообразно, чтобы при выходе из блока, когда объект перестает существовать, память была возвращена системе. Желательно, чтобы память освобождалась автоматически;
б) объект выходит из области видимости (при завершении программы или
функции).
Формат компонентной функции-деструктора
~ имя класса () { операторы тела деструктора};
1) Между тильдой и именем класса нет пробелов.
2) У деструктора нет типа результата даже void и нет параметров даже типа void.
3) Деструктор выполняется неявно, автоматически, как только объект уничтожается. Его никогда не вызывают, но можно и вызывать явно, если он определен в классе
<имя объекта>. ~ <имя класса>;
При этом объект будет продолжать существовать, только выполняться те действия, которые записаны в теле деструктора.
Пример 1.
… сlass Book {
public:
char title[40];
char author[20];
Float price
Book (char*atitle, char*aauthor, float aprice); // прототип
// конструктора
~Book(); // прототип деструктора
void show_book(void) { cout<< title<< “, “<<price};
};
Book::Book(char*atitle, char*aauthor, float aprice)
{ strcpy(title, atitle); strcpy(author, aauthor);
price = aprice; }
Book::~Book()
{ cout << “Уничтожение экземпляра:”<< title<<”\n”;}
Дата добавления: 2015-07-20; просмотров: 41 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Конструктора); | | | Имя объекта. имя компонента |