diff --git a/cint/test/VArray.cxx b/cint/test/VArray.cxx index 1966265d4bd495a2597a246174c66f8f610e727a..805167b52f2a9c074de0b6e0aaba2bfafa4dd846 100644 --- a/cint/test/VArray.cxx +++ b/cint/test/VArray.cxx @@ -5,184 +5,156 @@ * For the licensing terms see the file COPYING * ************************************************************************/ -/********************************************************** -* -**********************************************************/ #include "VArray.h" -/////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////// +#include <algorithm> +#include <cassert> + +using namespace std; + VArray::VArray() +: numElements(0) +, adrAry(0) { - numElements = 0; - adrAry = (VObject**)NULL; } -/////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////// -VArray::VArray(VArray& obj) +VArray::VArray(const VArray& obj) +: numElements(0) +, adrAry(0) { - Int_t result; - - numElements = 0; - adrAry = (VObject**)NULL; - - result = SetNumElements(obj.GetNumElements()); - if(SUCCESS!=result) return; - - for(Int_t i=0;i<numElements;i++) adrAry[i] = obj.adrAry[i]; + int result = SetNumElements(obj.GetNumElements()); + if (result != SUCCESS) { + return; + } + for (int i = 0; i < numElements; ++i) { + adrAry[i] = obj.adrAry[i]; + } } -/////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////// -VArray& VArray::operator=(VArray& obj) +VArray& VArray::operator=(const VArray& obj) { - Int_t result; - - result = SetNumElements(obj.GetNumElements()); - if(SUCCESS!=result) return(*this); - - for(Int_t i=0;i<numElements;i++) adrAry[i] = obj.adrAry[i]; - - return(*this); + if (this != &obj) { + int result = SetNumElements(obj.GetNumElements()); + if (result != SUCCESS) { + return *this; + } + for (int i = 0; i < numElements; ++i) { + adrAry[i] = obj.adrAry[i]; + } + } + return *this; } -/////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////// VArray::~VArray() { - if(adrAry) { - delete[] adrAry; - adrAry = (VObject**)NULL; - } + delete[] adrAry; + adrAry = 0; } -/////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////// -Int_t VArray::SetNumElements(Int_t numin) +int VArray::SetNumElements(int numin) { - VObject** storeAry = adrAry; - Int_t storeNum = numElements; - - if(numin<0) return FAILURE; - else if(0==numin) { - if(adrAry) { + VObject** storeAry = adrAry; + int storeNum = numElements; + if (numin < 0) { + return FAILURE; + } + else if (!numin) { delete[] adrAry; - adrAry = (VObject**)NULL; - } - numElements = numin; - return(SUCCESS); - } - - - numElements = numin; - adrAry = new VObject*[numElements]; - if((VObject**)NULL==adrAry) { - adrAry = storeAry; - numElements = storeNum; - return(FAILURE); - } - - if(storeAry) { - Int_t minNum = MIN(numElements,storeNum); - Int_t i; - for(i=0;i<minNum;i++) adrAry[i] = storeAry[i]; - delete[] storeAry; - } - - return(SUCCESS); + adrAry = 0; + numElements = numin; + return SUCCESS; + } + numElements = numin; + adrAry = new VObject*[numElements]; + if (!adrAry) { + adrAry = storeAry; + numElements = storeNum; + return FAILURE; + } + if (storeAry) { + int minNum = min(numElements, storeNum); + for (int i = 0; i < minNum; ++i) { + adrAry[i] = storeAry[i]; + } + delete[] storeAry; + } + return SUCCESS; } -/////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////// -Int_t VArray::Add(VObject* obj,Int_t index) +int VArray::Add(VObject* obj, int index) { - ///* DEBUG */ printf("Add(%p)\n",obj); - VObject** storeAry = adrAry; - void *ppp = adrAry; - - adrAry = new VObject*[++numElements]; - if((VObject**)NULL==adrAry) { - adrAry = storeAry; - --numElements; - return(FAILURE); - } - - if(index<0||numElements-1<index) index = numElements-1; - - if(storeAry) { - Int_t i; - for(i=0;i<index;i++) adrAry[i] = storeAry[i]; - ///*DEBUG*/ for(i=0;i<index;i++) printf("%d:%lx:%lx ",i,adrAry[i],storeAry[i]); - ///*DEBUG*/printf("\n"); - adrAry[index] = obj; - for(i=index+1;i<numElements;i++) adrAry[i] = storeAry[i-1]; - delete[] storeAry; - } - else { - assert(0==index); - adrAry[index] = obj; - } - - ///* DEBUG */ printf("%lx.%d Add(%lx) = %lx\n",this,index,adrAry[index],obj); - //G__pause(); - return(SUCCESS); + VObject** storeAry = adrAry; + void *ppp = adrAry; + adrAry = new VObject*[++numElements]; + if (!adrAry) { + adrAry = storeAry; + --numElements; + return FAILURE; + } + if ((index < 0) || ((numElements - 1) < index)) { + index = numElements - 1; + } + if (storeAry) { + for (int i = 0; i < index; ++i) { + adrAry[i] = storeAry[i]; + } + adrAry[index] = obj; + for (int i = index + 1; i < numElements; ++i) { + adrAry[i] = storeAry[i-1]; + } + delete[] storeAry; + } + else { + assert(index == 0); + adrAry[index] = obj; + } + return SUCCESS; } -/////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////// -VObject* VArray::Delete(Int_t index,Int_t flag) +VObject* VArray::Delete(int index, int flag) { - if(index<0||numElements-1<index) index=numElements-1; - - VObject** storeAry = adrAry; - assert((VObject**)NULL!=adrAry); - - VObject *p = storeAry[index]; - - if(flag) { - delete p; - p = (VObject*)NULL; - } - - if(1==numElements) { - numElements = 0; - delete[] adrAry; - adrAry = (VObject**)NULL; - return(p); - } - - assert(2<=numElements); - - adrAry = new VObject*[--numElements]; - if((VObject**)NULL==adrAry) { - adrAry = storeAry; - ++numElements; - return(NULL); - } - - if(storeAry) { - Int_t i; - for(i=0;i<index;i++) adrAry[i] = storeAry[i]; - for(i=index+1;i<numElements+1;i++) adrAry[i-1] = storeAry[i]; - delete[] storeAry; - } - - return(p); + if ((index < 0) || ((numElements - 1) < index)) { + index = numElements - 1; + } + VObject** storeAry = adrAry; + assert(adrAry != 0); + VObject* p = storeAry[index]; + if (flag) { + delete p; + p = 0; + } + if (numElements == 1) { + numElements = 0; + delete[] adrAry; + adrAry = 0; + return p; + } + assert(numElements >= 2); + adrAry = new VObject*[--numElements]; + if (!adrAry) { + adrAry = storeAry; + ++numElements; + return 0; + } + if (storeAry) { + for (int i = 0; i < index; ++i) { + adrAry[i] = storeAry[i]; + } + for (int i = index + 1; i < (numElements + 1); ++i) { + adrAry[i-1] = storeAry[i]; + } + delete[] storeAry; + } + return p; } -/////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////// -VObject* VArray::GetElement(Int_t index) +VObject* VArray::GetElement(int index) { - if(index<0 || numElements<=index) { - assert(0); - return(adrAry[0]); - } - - ///* DEBUG */ printf("%lx.%d GetElement(%lx)\n",this,index,adrAry[index]); - //G__pause(); - return(adrAry[index]); + if ((index < 0) || (numElements <= index)) { + assert(0); + return adrAry[0]; + } + return adrAry[index]; } diff --git a/cint/test/VArray.h b/cint/test/VArray.h index 44ab312c2549d91a472247ca71a66854f38b2dac..db0ba741beb9a259307f6319fc0656aafefc84fd 100644 --- a/cint/test/VArray.h +++ b/cint/test/VArray.h @@ -5,47 +5,44 @@ * For the licensing terms see the file COPYING * ************************************************************************/ -/*********************************************************************** -* VArray.h , C++ -* -************************************************************************ -* Description: -* -***********************************************************************/ #ifndef VARRAY_H #define VARRAY_H -#include "VType.h" #include "VObject.h" +#include "VType.h" #define INVALIDINDEX -1 -/********************************************************** -* Polymorphic Array object -**********************************************************/ +class VArray : public VObject +{ + // Polymorphic Array object +public: -class VArray : public VObject { - public: + VArray(); + VArray(const VArray& obj); + VArray& operator=(const VArray& obj); + ~VArray(); - VArray(); - VArray(VArray& obj); - VArray& operator=(VArray& obj); - ~VArray(); - // Int_t operator==(VArray& x); + int SetNumElements(int numin); + int Add(VObject* obj, int index = INVALIDINDEX); + VObject* Delete(int index = INVALIDINDEX, int flag = 0); - Int_t SetNumElements(Int_t numin); - Int_t Add(VObject* obj,Int_t index=INVALIDINDEX); - VObject* Delete(Int_t index=INVALIDINDEX,Int_t flag=0); + int GetNumElements() const + { + return numElements; + } - Int_t GetNumElements() { return numElements;} - VObject* GetElement(Int_t index); - VObject& operator[](Int_t index) { return(*GetElement(index)); } + VObject* GetElement(int index); - private: - Int_t numElements; - VObject** adrAry; -}; + VObject& operator[](int index) + { + return *GetElement(index); + } -#endif +private: + int numElements; + VObject** adrAry; +}; +#endif // VARRAY_H diff --git a/cint/test/VCompany.cxx b/cint/test/VCompany.cxx index 8959084f63ef5996bc5dfc904b2386bcca178310..1b18bae274f8c6911f34fce25aef3175b66a30f9 100644 --- a/cint/test/VCompany.cxx +++ b/cint/test/VCompany.cxx @@ -6,51 +6,61 @@ * ************************************************************************/ +#include "VCompany.h" -#ifdef __hpux -#include <iostream.h> -#else #include <iostream> + using namespace std; -#endif -#include "VCompany.h" -VCompany::VCompany() : VObject() , name() , country() +VCompany::VCompany() + : VObject() { } -VCompany::VCompany(VCompany& x) : VObject() , name(x.name) , country(x.country) +VCompany::VCompany(const VCompany& x) +: VObject() +, name(x.name) +, country(x.country) { } -VCompany::VCompany(Char_t* nameIn,Char_t* countryIn) : VObject() , name(nameIn) , country(countryIn) +VCompany::VCompany(const char* nameIn, const char* countryIn) +: VObject() +, name(nameIn) +, country(countryIn) { } -VCompany::VCompany(Char_t* nameIn,Int_t num) : VObject(), name(nameIn), country() +VCompany::VCompany(const char* nameIn, int num) +: VObject() +, name(nameIn) { - char buf[10]; - sprintf(buf,"country%d",num); - country = buf; + char buf[256]; + sprintf(buf, "country%d", num); + country = buf; } -VCompany& VCompany::operator=(VCompany& x) +VCompany& VCompany::operator=(const VCompany& x) { - name = x.name; - country = x.country; - return x; + if (this != &x) { + name = x.name; + country = x.country; + } + return *this; } -VCompany::~VCompany() +VCompany::~VCompany() { } -void VCompany::set(Char_t* nameIn,Char_t* countryIn) +void VCompany::set(const char* nameIn, const char* countryIn) { - name = nameIn; - country = countryIn; + name = nameIn; + country = countryIn; } -void VCompany::disp() { - cout << name.String() << " " << country.String() << endl; +void VCompany::disp() +{ + cout << name.String() << " " << country.String() << endl; } + diff --git a/cint/test/VCompany.h b/cint/test/VCompany.h index 0c51c8284eb675162d6d1304f12dc1c5a1184fb5..61a023feec4673a21cd5bf1a8f8df70553cd3e9a 100644 --- a/cint/test/VCompany.h +++ b/cint/test/VCompany.h @@ -6,24 +6,38 @@ * ************************************************************************/ -//#pragma includepath "\mpn\ke\proto3" -#include "VString.h" +#ifndef VCOMPANY_H +#define VCOMPANY_H + #include "VObject.h" +#include "VString.h" + +class VCompany : public VObject +{ +public: + VCompany(); + VCompany(const VCompany& x); + VCompany(const char* nameIn, const char* countryIn); + VCompany(const char* nameIn, int num); + VCompany& operator=(const VCompany& x); + ~VCompany(); + void set(const char* nameIn, const char* countryIn); + + const char* Name() + { + return name.String(); + } + + const char* Syozoku() + { + return country.String(); + } + + void disp(); -class VCompany : public VObject { - public: - VCompany(); - VCompany(VCompany& x); - VCompany(Char_t* nameIn,Char_t* countryIn); - VCompany(Char_t* nameIn,Int_t num); - VCompany& operator=(VCompany& x); - ~VCompany(); - void set(Char_t* nameIn,Char_t* countryIn); - Char_t* Name() { return(name.String()); } - Char_t* Syozoku() { return(country.String()); } - void disp(); - private: - VString name; - VString country; +private: + VString name; + VString country; }; +#endif // VCOMPANY_H diff --git a/cint/test/VObject.cxx b/cint/test/VObject.cxx index b75979523e7eda1c208c1045a1ced76817f57a6a..c9c4971a277467f17c1e2f2342fea4594539c6a9 100644 --- a/cint/test/VObject.cxx +++ b/cint/test/VObject.cxx @@ -5,52 +5,28 @@ * For the licensing terms see the file COPYING * ************************************************************************/ -/*********************************************************************** -* VObject.cxx , C++ -* -************************************************************************ -* Description: -* -***********************************************************************/ - -#ifdef __hpux -#include <iostream.h> -#else + +#include "VObject.h" + #include <iostream> + using namespace std; -#endif -#include "VObject.h" -/////////////////////////////////////////////////////////// -// -/////////////////////////////////////////////////////////// VObject::VObject() { } -/////////////////////////////////////////////////////////// -// -/////////////////////////////////////////////////////////// -VObject::VObject(VObject& x) +VObject::VObject(const VObject& x) { } -/////////////////////////////////////////////////////////// -// -/////////////////////////////////////////////////////////// -VObject& VObject::operator=(VObject& x) +VObject& VObject::operator=(const VObject& x) { - cerr << "VObject::operator=() must be overridden" << endl; - return x; + cerr << "VObject::operator=() must be overridden" << endl; + return *this; } -/////////////////////////////////////////////////////////// -// -/////////////////////////////////////////////////////////// VObject::~VObject() { - //cerr << "VObject::~VObject() must be overridden" << endl; } - - diff --git a/cint/test/VObject.h b/cint/test/VObject.h index 59c3b982b6cfe73c3d298544d26144291facf2d2..f95dd2acd505d389520f0538036e4e51d439db20 100644 --- a/cint/test/VObject.h +++ b/cint/test/VObject.h @@ -5,29 +5,24 @@ * For the licensing terms see the file COPYING * ************************************************************************/ -/*********************************************************************** -* VObject.h , C++ -* -************************************************************************ -* Description: -* -***********************************************************************/ - #ifndef VOBJECT_H #define VOBJECT_H #include "VType.h" -class VObject { - public: - VObject(); - VObject(VObject& x); - virtual VObject& operator=(VObject& x); - virtual ~VObject(); - virtual void disp() { - cout << "(VObject)" << endl; - } -}; +#include <iostream> -#endif +class VObject +{ +public: + VObject(); + VObject(const VObject& x); + virtual VObject& operator=(const VObject& x); + virtual ~VObject(); + virtual void disp() + { + std::cout << "(VObject)" << std::endl; + } +}; +#endif // VOBJECT_H diff --git a/cint/test/VPerson.cxx b/cint/test/VPerson.cxx index 2ecb0039799c59151e689f56cb874508300ad7cd..3ba7049ee7d12a2569dbe49c6b147693af79fedb 100644 --- a/cint/test/VPerson.cxx +++ b/cint/test/VPerson.cxx @@ -6,51 +6,63 @@ * ************************************************************************/ +#include "VPerson.h" -#ifdef __hpux -#include <iostream.h> -#else #include <iostream> + using namespace std; -#endif -#include "VPerson.h" -VPerson::VPerson() : VObject() , name() , syozoku() +VPerson::VPerson() +: VObject() +, name() +, syozoku() { } -VPerson::VPerson(VPerson& x) : VObject() , name(x.name) , syozoku(x.syozoku) +VPerson::VPerson(const VPerson& x) +: VObject(x) +, name(x.name) +, syozoku(x.syozoku) { } -VPerson::VPerson(Char_t* nameIn,Char_t* syozokuIn) : VObject() , name(nameIn) , syozoku(syozokuIn) +VPerson::VPerson(const char* nameIn, const char* syozokuIn) +: VObject() +, name(nameIn) +, syozoku(syozokuIn) { } -VPerson::VPerson(Char_t* nameIn,Int_t num) : VObject(), name(nameIn), syozoku() +VPerson::VPerson(const char* nameIn, int num) +: VObject() +, name(nameIn) { - char buf[10]; - sprintf(buf,"syozoku%d",num); - syozoku = buf; + char buf[256]; + sprintf(buf, "syozoku%d", num); + syozoku = buf; } -VPerson& VPerson::operator=(VPerson& x) +VPerson& VPerson::operator=(const VPerson& x) { - name = x.name; - syozoku = x.syozoku; - return x; + if (this != &x) { + name = x.name; + syozoku = x.syozoku; + } + return *this; } -VPerson::~VPerson() +VPerson::~VPerson() { } -void VPerson::set(Char_t* nameIn,Char_t* syozokuIn) +void VPerson::set(const char* nameIn, const char* syozokuIn) { - name = nameIn; - syozoku = syozokuIn; + name = nameIn; + syozoku = syozokuIn; } -void VPerson::disp() { - cout << name.String() << " " << syozoku.String() << endl; +void VPerson::disp() +{ + cout << name.String() << " " << syozoku.String() << endl; } + diff --git a/cint/test/VPerson.h b/cint/test/VPerson.h index 237bf8fee48121a0f06feafbc81bd0aa5847b8e7..5779a7501cb1ed5805aedc326701ad13d30b0473 100644 --- a/cint/test/VPerson.h +++ b/cint/test/VPerson.h @@ -6,24 +6,38 @@ * ************************************************************************/ -//#pragma includepath "\mpn\ke\proto3" +#ifndef VPERSON_H +#define VPERSON_H + #include "VString.h" #include "VObject.h" -class VPerson : public VObject { - public: - VPerson(); - VPerson(VPerson& x); - VPerson(Char_t* nameIn,Char_t* syozokuIn); - VPerson(Char_t* nameIn,Int_t num); - VPerson& operator=(VPerson& x); - ~VPerson(); - void set(Char_t* nameIn,Char_t* shozokuIn); - Char_t* Name() { return(name.String()); } - Char_t* Syozoku() { return(syozoku.String()); } - void disp(); - private: - VString name; - VString syozoku; +class VPerson : public VObject +{ +public: + VPerson(); + VPerson(const VPerson& x); + VPerson(const char* nameIn, const char* syozokuIn); + VPerson(const char* nameIn, int num); + VPerson& operator=(const VPerson& x); + ~VPerson(); + void set(const char* nameIn, const char* shozokuIn); + + const char* Name() + { + return name.String(); + } + + const char* Syozoku() + { + return syozoku.String(); + } + + void disp(); + +private: + VString name; + VString syozoku; }; +#endif // VPERSON_H diff --git a/cint/test/VPersonTest.cxx b/cint/test/VPersonTest.cxx index b760cf02db9278cdf96083870f8b96cf4abb3516..2abf597f22c4ee2630d3ce30703e8c2c3ebbff60 100644 --- a/cint/test/VPersonTest.cxx +++ b/cint/test/VPersonTest.cxx @@ -5,92 +5,67 @@ * For the licensing terms see the file COPYING * ************************************************************************/ + #define INTERP + #ifdef INTERP #include "VObject.cxx" #include "VPerson.cxx" #include "VCompany.cxx" #include "VArray.cxx" #include "VString.cxx" -#else +#else // INTERP #include "VPerson.dll" -#endif +#endif // INTERP #define NUM 5 -#if 0 -void test0() { - VArray a; - VPerson* p; - VCompany* p1; - Int_t i; - p=new VPerson("name0",i); - a.Add(p,-1); - p1=new VCompany("company1",i); - a.Add(p1,-1); - p=new VPerson("name2",i); - a.Add(p,-1); - p1=new VCompany("company3",i); - a.Add(p1,-1); - p=new VPerson("name4",i); - a.Add(p,-1); - - for(i=0;i<NUM;i++) { - a[i].disp(); - } - - for(i=0;i<NUM;i++) { - delete a.Delete(-1,0); - } +void test1() +{ + VArray a; + VPerson* p = 0; + VCompany* p1 = 0; + for (int i = 0; i < NUM; ++i) { + if (i % 2) { + p = new VPerson("name", i); + a.Add(p, -1); + } + else { + p1 = new VCompany("company", i); + a.Add(p1, -1); + } + } + for (int i = 0; i < NUM; ++i) { + a[i].disp(); + } + for (int i = 0; i < NUM; ++i) { + delete a.Delete(-1, 0); + } } -#endif - -void test1() { - VArray a; - VPerson* p; - VCompany* p1; - Int_t i; - for(i=0;i<NUM;i++) { - if(i%2) { - p=new VPerson("name",i); - a.Add(p,-1); - } - else { - p1=new VCompany("company",i); - a.Add(p1,-1); - } - } - for(i=0;i<NUM;i++) { - a[i].disp(); - } - - for(i=0;i<NUM;i++) { - delete a.Delete(-1,0); - } +void test2() +{ + VArray a; + for (int i = 0; i < NUM; ++i) { + if (i % 2) { + a.Add(new VPerson("name", i), -1); + } + else { + a.Add(new VCompany("company", i), -1); + } + } + for (int i = 0; i < NUM; ++i) { + a[i].disp(); + } + for (int i = 0; i < NUM; ++i) { + a.Delete(-1, 1); + } } -void test2() { - VArray a; - //VPerson* p; - Int_t i; - for(i=0;i<NUM;i++) { - if(i%2) a.Add(new VPerson("name",i),-1); - else a.Add(new VCompany("company",i),-1); - } - - for(i=0;i<NUM;i++) { - a[i].disp(); - } - - for(i=0;i<NUM;i++) { - a.Delete(-1,1); - } +int main() +{ + test1(); + test2(); + return 0; } -int main() { - //test0(); - test1(); - test2(); - return 0; -} diff --git a/cint/test/VString.cxx b/cint/test/VString.cxx index ab56074036ad7e37aa4b22875c4ba600604f19de..b9cf3cf835f20534295faca3c6762012547b7963 100644 --- a/cint/test/VString.cxx +++ b/cint/test/VString.cxx @@ -5,176 +5,129 @@ * For the licensing terms see the file COPYING * ************************************************************************/ -/*********************************************************************** -* VString.cxx , C++ -* -************************************************************************ -* Description: -***********************************************************************/ #include "VString.h" -/////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////// -VString::VString(const Char_t* strIn ) -{ - str = (Char_t*)NULL; - len = 0; +using namespace std; - if(strIn && strIn[0]) { - len = strlen(strIn); - str = new Char_t[len+1]; - strcpy(str,strIn); - } +VString::VString(const char* strIn) +: len(0) +, str(0) +{ + if (strIn && strIn[0]) { + len = strlen(strIn); + str = new char[len+1]; + strcpy(str, strIn); + } } -/////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////// -VString::VString(const VString& kstrIn ) +VString::VString(const VString& kstrIn) +: len(0) +, str(0) { - str = (Char_t*)NULL; - len = 0; - - if(kstrIn.str) { - len = kstrIn.len; - str = new Char_t[len+1]; - strcpy(str,kstrIn.str); - } + if (kstrIn.str) { + len = kstrIn.len; + str = new char[len+1]; + strcpy(str, kstrIn.str); + } } -/////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////// VString& VString::operator=(const VString& obj) { - if(str) delete[] str; - str = (Char_t*)NULL; - len = 0; - - if(obj.str) { - len = obj.len; - str = new Char_t[len+1]; - strcpy(str,obj.str); - } - - return(*this); + if (this != &obj) { + len = 0; + delete[] str; + str = 0; + if (obj.str) { + len = obj.len; + str = new char[len+1]; + strcpy(str, obj.str); + } + } + return *this; } -/////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////// -VString& VString::operator=(const Char_t* s) -{ - if(str) delete[] str; - str = (Char_t*)NULL; - len = 0; - - if(s && s[0]) { - len = strlen(s); - str = new Char_t[len+1]; - strcpy(str,s); - } - return(*this); +VString& VString::operator=(const char* s) +{ + len = 0; + delete[] str; + str = 0; + if (s && s[0]) { + len = strlen(s); + str = new char[len+1]; + strcpy(str, s); + } + return *this; } -/////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////// void VString::append(const VString& s) { - if(0==s.len) return; - append(s.str); + if (!s.len) { + return; + } + append(s.str); } -/////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////// -void VString::append(const Char_t* s) +void VString::append(const char* s) { - if(!s) return; - if(str) { - len = len + strlen(s); - Char_t* p = new Char_t[len+1]; - sprintf(p,"%s%s",str,s); - delete[] str; - str = p; - } - else { - *this = s; - } + if (!s) { + return; + } + if (str) { + len = len + strlen(s); + char* p = new char[len+1]; + sprintf(p, "%s%s", str, s); + delete[] str; + str = p; + } + else { + *this = s; + } } -/////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////// -Int_t VString::Write(FILE* fp) +int VString::Write(FILE* fp) { - fwrite((void*)(&len) ,sizeof(len) ,1,fp); - - if(len) fwrite((void*)(str) ,(size_t)(len+1) ,1,fp); - - return(SUCCESS); + fwrite(&len, sizeof(len), 1, fp); + if (len) { + fwrite(str, len + 1, 1, fp); + } + return SUCCESS; } - -/////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////// -Int_t VString::Read(FILE* fp) +int VString::Read(FILE* fp) { - if(str) delete[] str; - str = (Char_t*)NULL; - len = 0; - - fread((void*)(&len) ,sizeof(len) ,1,fp); - - if(len) { - str = new Char_t[len+1]; - fread((void*)(str) ,(size_t)(len+1) ,1,fp); - } - - return(SUCCESS); + len = 0; + delete[] str; + str = 0; + fread(&len, sizeof(len), 1, fp); + if (len) { + str = new char[len+1]; + fread(str, len + 1, 1, fp); + } + return SUCCESS; } -Int_t Debug=0; +int Debug = 0; -/////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////// -int strcmp(const VString& a,const Char_t* b) +int strcmp(const VString& a, const char* b) { - if(a.len==0 && strlen(b)==0) { - return 0; - } - else if(a.len>0 && strlen(b)>0) { - return(strcmp(a.str,b)); - } - else { - return 1; - } + if (!a.len && !strlen(b)) { + return 0; + } + else if (a.len && strlen(b)) { + return strcmp(a.str, b); + } + return 1; } -/////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////// -int strcmp(const Char_t* b,const VString& a) +int strcmp(const char* b, const VString& a) { - if(a.len==0 && strlen(b)==0) { - return 0; - } - else if(a.len>0 && strlen(b)>0) { - return(strcmp(a.str,b)); - } - else { - return 1; - } + if (!a.len && !strlen(b)) { + return 0; + } + else if (a.len && strlen(b)) { + return strcmp(a.str, b); + } + return 1; } -#if 0 -/////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////// -Char_t VString::operator[](Int_t index) -{ - if(len && 0<=index && index<len) return str[index]; - else return 0; -} - -/////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////// -char* strcpy(VString& a,const VString& b) -{ - a=b; -} -#endif diff --git a/cint/test/VString.h b/cint/test/VString.h index 8c1a81b617f12f8de8616303ff8bd2a2422a1102..b1aa55d3dfd0c47de5ee091e17d0aba8843356e2 100644 --- a/cint/test/VString.h +++ b/cint/test/VString.h @@ -5,59 +5,68 @@ * For the licensing terms see the file COPYING * ************************************************************************/ -/*********************************************************************** -* VString.h , C++ -* -************************************************************************ -* Description: -* -***********************************************************************/ #ifndef VSTRING_H #define VSTRING_H #include "VType.h" -/*********************************************************************** -***********************************************************************/ -class VString { - public: - - VString() { len = 0; str = (Char_t*)NULL; } - VString(const Char_t* strIn); - VString(const VString& kstrIn); - VString& operator=(const VString& obj); - VString& operator=(const Char_t* s); - ~VString() { if(str) delete[] str; } - Int_t operator==(const VString& x) { - if((0==len&&0==x.len) || (len==x.len && 0==strcmp(str,x.str))) - return MATCH; - else return UNMATCH; - } - - Int_t Write(FILE* fp); - Int_t Read(FILE* fp); - - void append(const VString& s); - void append(const Char_t* s); - - Int_t Length() { return len; } - Char_t* String() { if(str) return str; else return "";} - - friend int strcmp(const VString& a,const Char_t* b); - friend int strcmp(const Char_t* b,const VString& a); -#if 0 - Char_t operator[](Int_t index); - friend int strcmp(const VString& a,const VString& b); - friend char* strcpy(VString& a,const VString& b); -#endif - - private: - Int_t len; - Char_t* str; -}; +class VString +{ + friend int strcmp(const VString& a, const char* b); + friend int strcmp(const char* b, const VString& a); + +public: + + VString() + : len(0) + , str(0) + { + } + + VString(const char* strIn); + VString(const VString& kstrIn); + VString& operator=(const VString& obj); + VString& operator=(const char* s); + + ~VString() + { + delete[] str; + } + int operator==(const VString& x) + { + if ( + (!len && !x.len) || + ((len == x.len) && !strcmp(str, x.str)) + ) { + return MATCH; + } + return UNMATCH; + } + int Write(FILE* fp); + int Read(FILE* fp); -#endif // VString_H + void append(const VString& s); + void append(const char* s); + + int Length() + { + return len; + } + + const char* String() + { + if (str) { + return str; + } + return ""; + } + +private: + int len; + char* str; +}; +#endif // VSTRING_H diff --git a/cint/test/VType.h b/cint/test/VType.h index bd53cef6a92d186483292bef75e3712a3db184bb..a55072445a7b3b05f0665998187ccda0745f87ef 100644 --- a/cint/test/VType.h +++ b/cint/test/VType.h @@ -5,21 +5,14 @@ * For the licensing terms see the file COPYING * ************************************************************************/ -/*********************************************************************** -* VType.h , C++ -* -************************************************************************ -* Description: -* -***********************************************************************/ #ifndef VTYPE_H #define VTYPE_H -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <assert.h> +#include <cassert> +#include <cstdio> +#include <cstdlib> +#include <cstring> #define SUCCESS 0 #define FAILURE 1 @@ -45,4 +38,4 @@ typedef char Char_t; #define MATCH 1 #define UNMATCH 0 -#endif +#endif // VTYPE_H