Ãëàâà 18. Êëàññû-êîíòåéíåðû _____ ______________________435
^include <iostream.h>
#include <iomahip.h> ttinclude <classlib\arrays.h>
#include "studentl.h"
#define true 1 ftdefine false 0
typedef TIArrayAsVector<STUDENT> STUDENT_LIST;
// Ôóíêöèÿ äëÿ âûâîäà ñòàòóñà ïðèíàäëåæíîñòè void WriteOwnership(STUDENT_LIST&) ;
int main() { • •.
STUDENT_LIST studentList(5, 0, 5);
studentList.Add(new STUDENT("STUDENTI", 1.0)5;
studentList.Add(new STUDENT("STUDENT2", 2.0));
studentList.Add(new STUDENT("STUDENTS", 3.0));
cout « "Default ownership: ";
WriteOwnership(studentList); // Âëàäååò îáúåêòàìè.
studentList.OwnsElements(false) ;
cout « "After studentList.OwnsElements(false): ";
WriteOwnership(studentList); // He âëàäååò îáúåêòàìè.
STUDENT *s;
s = studentList[0];
studentList.Detach(0); // Ýëåìåíò íå óíè÷òîæåí. // s îïðåäåëåíà.
studentList.AddAt(s, 0); // Êëàäåì s îáðàòíî.
studentList.Detach(0, TShouldDelete::NoDelete) ;
// Ýêâèâàëåíòíî // ïðåäûäóùåé Detach.
studentList. AddAt .(s, 0); // Êëàäåì s îáðàòíî
studentList.Detach(0, TShouldDelete::DefDelete) ;
// s âñå åùå îïðåäåëåíî // õîòÿ è íå âëàäååò ýëåìåíòàìè.
studentList.AddAt(s, 0); // Êëàäåì s îáðàòíî.
studentList.Detach(0, TShouldDelete::Delete) ;
// Ýëåìåíò óíè÷òîæåí. - // s HE îïðåäåëåíà
S = new STUDENT("NEWSTU1", 1.0);
studentList.AddAt(s, 0); '
studentList.OwnsElements(true); // Èçìåíåíèå ïðèíàäëåæíîñòè //íà çíà÷åíèå ïî óìîë÷àíèþ.
studentList.Detach(0, TShouldDelete::DefDelete) ;
// Ýëåìåíò óíè÷òîæåí. // s HE îïðåäåëåíà