#ifndef ROOT_TArray #define ROOT_TArray //+SEQ,CopyRight,T=NOINCLUDE. ////////////////////////////////////////////////////////////////////////// // // // TArray // // // // Abstract array base class. Used by TArrayC, TArrayS, TArrayI, // // TArrayL, TArrayF and TArrayD. // // Data member is public for historical reasons. // // // ////////////////////////////////////////////////////////////////////////// #ifndef ROOT_Htypes //*KEEP,Htypes. #include "Htypes.h" //*KEND. #endif class TBuffer; class TArray { protected: Bool_t BoundsOk(const char *where, Int_t at) const; Bool_t OutOfBoundsError(const char *where, Int_t i) const; public: Int_t fN; //Number of array elements TArray() { fN = 0; } TArray(Int_t n) { fN = n; } TArray(const TArray &a) { fN = a.fN; } TArray &operator=(const TArray &rhs) { fN = rhs.fN; return *this; } virtual ~TArray() { fN = 0; } Int_t GetSize() const { return fN; } virtual void Set(Int_t n) = 0; static TArray *ReadArray(TBuffer &b, const TClass *clReq); static void WriteArray(TBuffer &b, const TArray *a); friend TBuffer &operator<<(TBuffer &b, const TArray *obj); ClassDef(TArray,1) //Abstract array base class }; inline Bool_t TArray::BoundsOk(const char *where, Int_t at) const { return (at < 0 || at >= fN) ? OutOfBoundsError(where, at) : kTRUE; } #endif