diff options
Diffstat (limited to 'ACE/examples/APG/Containers/DataElement.h')
-rw-r--r-- | ACE/examples/APG/Containers/DataElement.h | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/ACE/examples/APG/Containers/DataElement.h b/ACE/examples/APG/Containers/DataElement.h new file mode 100644 index 00000000000..cd09d86fa87 --- /dev/null +++ b/ACE/examples/APG/Containers/DataElement.h @@ -0,0 +1,52 @@ +/* -*- C++ -*- */ +// $Id$ + +#if !defined(DATAELEMENT_H) +#define DATAELEMENT_H + +class DataElementEx; + +// Listing 1 code/ch05 +// A simple data element class. +class DataElement +{ + friend class DataElementEx; + +public: + DataElement () : data_ (0) { count_++; } + + DataElement (int data) : data_(data) { count_++; } + + DataElement (const DataElement& e) + { + data_ = e.getData (); + count_++; + } + + DataElement & operator= (const DataElement& e) + { + data_ = e.getData (); + return *this; + } + + bool operator== (const DataElement& e) + { return this->data_ == e.data_; } + + ~DataElement () { count_--; } + + int getData (void) const { return data_; } + + void setData (int val) { data_ = val; } + + static int numOfActiveObjects (void) { return count_; } + + private: + int data_; + static int count_; +}; +// Listing 1 + +int DataElement::count_ = 0; + +#endif /*DATAELEMENT_H*/ + |