12 #ifndef ROOT_TVirtualArray
13 #define ROOT_TVirtualArray
33 TVirtualArray( TClass *cl, UInt_t size ) : fClass(cl), fCapacity(size), fSize(size), fArray( (char*)( cl ? cl->NewArray(size) : 0) ) {};
34 ~TVirtualArray() {
if (fClass) fClass->DeleteArray( fArray ); }
36 TClass *GetClass() {
return fClass; }
37 char *operator[](UInt_t ind)
const {
return GetObjectAt(ind); }
38 char *GetObjectAt(UInt_t ind)
const {
return fArray+fClass->Size()*ind; }
40 void SetSize(UInt_t size) {
44 if (fSize > fCapacity && fClass) {
45 fClass->DeleteArray( fArray );
46 fArray = (
char*)fClass->NewArray(fSize);
54 #endif // ROOT_TVirtualArray