// ННГУ, ВМК, Курс "Методы программирования-2", С++, ООП // // dataroot.cpp - Copyright (c) Гергель В.П. 28.07.2000 (06.08) // // Динамические структуры данных - базовый (абстрактный) класс - версия 3.1 // память выделяется динамически или задается методом SetMem #include <alloc.h> #include <stdio.h> #include "dataroot.h" /*---------------------------------------------*/ TDataRoot :: TDataRoot ( int Size ) : TDataCom() { DataCount = 0; MemSize = Size; if ( Size == 0 ) { // память будет установлена методом SetMem pMem = NULL; MemType = MEM_RENTER; } else { // память выделяется объектом pMem = new TElem[MemSize]; MemType = MEM_HOLDER; } } /*---------------------------------------------*/ TDataRoot :: ~TDataRoot () { if ( MemType == MEM_HOLDER ) delete pMem; pMem = NULL; } /*---------------------------------------------*/ void TDataRoot :: SetMem ( void *pMemory, int Size ) { // задание памяти if ( MemType == MEM_HOLDER ) delete pMem; // ! информация не сохраняется pMem = (TElem *) pMemory; MemType = MEM_RENTER; MemSize = Size; } // SetMem /*---------------------------------------------*/ int TDataRoot :: IsEmpty(void) const { // контроль пустоты СД return DataCount == 0; } /*---------------------------------------------*/ int TDataRoot :: IsFull(void) const { // контроль переполнения СД return DataCount == MemSize; }