Ãëàâà 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 îïðåäåëåíà