From ff826c9bb5f479a9671532132e6a55149918d94e Mon Sep 17 00:00:00 2001 From: nyamatongwe Date: Tue, 10 Jul 2012 16:54:38 +1000 Subject: Added copy constructor and assignment operator to ease manipulation. --- lexlib/CharacterSet.h | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'lexlib/CharacterSet.h') diff --git a/lexlib/CharacterSet.h b/lexlib/CharacterSet.h index 929a3a6e1..a0c45b2fb 100644 --- a/lexlib/CharacterSet.h +++ b/lexlib/CharacterSet.h @@ -40,11 +40,32 @@ public: if (base & setDigits) AddString("0123456789"); } + CharacterSet(const CharacterSet &other) { + size = other.size; + valueAfter = other.valueAfter; + bset = new bool[size]; + for (int i=0; i < size; i++) { + bset[i] = other.bset[i]; + } + } ~CharacterSet() { delete []bset; bset = 0; size = 0; } + CharacterSet &operator=(const CharacterSet &other) { + if (this != &other) { + bool *bsetNew = new bool[other.size]; + for (int i=0; i < other.size; i++) { + bsetNew[i] = other.bset[i]; + } + delete []bset; + size = other.size; + valueAfter = other.valueAfter; + bset = bsetNew; + } + return *this; + } void Add(int val) { assert(val >= 0); assert(val < size); -- cgit v1.2.3