//ex10_4.cpp //связный список включает в себя деструктор #include using namespace std; /////////////////////////////////////////////////////////// struct link //один элемент списка { int data; //элемент данных link*next; //указатель на следующий элемент }; /////////////////////////////////////////////////////////// class linklist //список ссылок { private: link*first; //указатель на первый элемент public: linklist() //конструктор без аргументов {first = NULL;} //первого элемента нет ~linklist(); //деструктор void additem(int г); //добавить элемент void display(); //вывести все ссылки }; //--------------------------------------------------------- void linklist::additem(int г) //добавление элемента данных { link*newlink =new link; //создать новую ссылку newlink->data = г; //предоставить ей данные newlink->next = first; //указывает на следующий //элемент first =newlink; //теперь первый указывает на него } //--------------------------------------------------------- void linklist::display() //вывод всех ссылок { link*current = first; //установить указатель на //первый элемент while(current !=NULL ) //выход по достижении //последнего элемента { cout <data; //вывести данные current =current->next; //перейти к следующей //ссылке } } //--------------------------------------------------------- linklist::~linklist() //деструктор { link*current =first; //установить указатель на //первый элемент while(current !=NULL ) //выход по достижении //последнего элемента { link*temp =current; //сохранить указатель на данный //элемент current =current->next; //получить ссылку на // следующую ссылку delete temp; //удалить эту ссылку } } /////////////////////////////////////////////////////////// int main() { linklist li; //создать связный список li.additem(25); //добавить 4 элемента в список li.additem(36); li.additem(49); li.additem(64); li.display(); //вывести весь список cout <