Примените конструкторы и деструкторы для автоматизации создания и удаления связных списков в предыдущих заданиях.
немного о конструкторах и деструкторах:
В структурах классах можно объявлять функции которые запускаются при создании объекта и инициализируют их угодным программеру образом.
Конструктор должен иметь то же имя что и класс/структура, конструктор может иметь параметроы. Конструкор без параметров называется конструктором по-умолчанию, конструктор с параметром - ссылка на определяемый класс, называется конструктор копирования.
struct List {
List()//default constructor
{
value = 0;
next = 0;
}
List(const List &s)//copy constructor
{
value = s.value;
next = s.next;
}
List(int v, List* n)//constructor
{
value = v;
next = n;
}
int value;
List* next;
};
main()
{
List a;//вызывается конструктор по-умолчанию
List b(a); // вызывается конструктор копирования
List v = a;// вызывается конструктор копирования
List g(4,&a);// вызывается конструктор List::List(int v,List* n)
List *d = new List;//вызывается конструктор по-умолчанию
List *e = new List(d);//вызывается конструктор копирования
List *j = new List(4,d);// вызывается конструктор List::List(int v,List* n)
}
Деструктором должен иметь тоже имя что и класс, но с добавлением тильды перед именем и не может иметь параметров, деструктор вызывается при удалении объекта.
struct List {
~List()//destructor
{
delete next;
}
int value;
List* next;
};
Комментариев нет:
Отправить комментарий