📄 array.cpp
字号:
//Header: Array.hpp
//Version: 1.0
//Language: Borland C++ 3.1
//Envion: Any
//Date: 10/1995
//Purpose: Privide a base class for array
#include "array.hpp"
#include <iostream.h>
#include <memory.h>
#include <process.h>
//default error message out function
void DefaultErr(ARRAYErrAttr);
void DefaultErr(ARRAYErrAttr ms)
{
switch(ms)
{
case OUT_RANGE: cout<<"\nClass Array: array member out of range!\n";
break;
case MEM_ALLOC: cout<<"\nClass Array: memory allocation failure!\n";
break;
case IIG_METHOD: cout<<"\nClass Array: mistake in method use!\n";
break;
default: ;
}
exit(1);
}
//constructor
Array::Array(long min, long max, size_t es)
{
Min = min;
Max = max;
ErrHandler = DefaultErr;
Elem = NULL;
Long = Max-Min+1;
ElemSize = es;
AllSize = es*Long;
BufAlloc();
}
Array::Array(Array &a)
{
Copy(a);
}
//destructor
Array::~Array()
{
Kill();
}
//other methods
Array& Array::operator = (Array &a)
{
Kill();
Copy(a);
return *this;
}
void Array::Copy(Array &a)
{
Min = a.Min;
Max = a.Max;
ErrHandler = a.ErrHandler;
Long = a.Long;
ElemSize = a.ElemSize;
AllSize = a.AllSize;
BufAlloc();
memcpy(Elem,a.Elem,AllSize);
}
void Array::Kill()
{
delete Elem;
Elem = NULL;
}
//error set method
ARRAYErrAttr Array::ErrSet(ARRAYErrAttr er)
{
ErrAttr = er;
if(ErrHandler != NULL) ErrHandler(er);
return ErrAttr;
}
//buffer allocation method
void Array::BufAlloc()
{
Elem = new char[AllSize];
if(Elem == NULL)
ErrSet(MEM_ALLOC);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -