00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 INLINE Namable::
00021 Namable(const string &initial_name) :
00022 _name(initial_name)
00023 {
00024 }
00025
00026
00027
00028
00029
00030
00031 INLINE Namable::
00032 Namable(const Namable ©) :
00033 _name(copy._name)
00034 {
00035 }
00036
00037
00038
00039
00040
00041
00042 INLINE Namable &Namable::
00043 operator = (const Namable &other) {
00044 _name = other._name;
00045 return *this;
00046 }
00047
00048
00049
00050
00051
00052
00053 INLINE void Namable::
00054 set_name(const string &name) {
00055 _name = name;
00056 }
00057
00058
00059
00060
00061
00062
00063 INLINE void Namable::
00064 clear_name() {
00065 _name = "";
00066 }
00067
00068
00069
00070
00071
00072
00073
00074 INLINE bool Namable::
00075 has_name() const {
00076 return !_name.empty();
00077 }
00078
00079
00080
00081
00082
00083
00084 INLINE const string &Namable::
00085 get_name() const {
00086 return _name;
00087 }
00088
00089
00090
00091
00092
00093
00094
00095
00096 INLINE void Namable::
00097 output(ostream &out) const {
00098 out << get_name();
00099 }
00100
00101
00102 INLINE ostream &operator << (ostream &out, const Namable &n) {
00103 n.output(out);
00104 return out;
00105 }
00106
00107
00108
00109
00110
00111
00112 INLINE bool NamableOrderByName::
00113 operator ()(const Namable *n1, const Namable *n2) const {
00114 return (n1->get_name() < n2->get_name());
00115 }