**fig1_5.txt** /* 1*/ class String /* 2*/ { /* 3*/ private: /* 4*/ unsigned int Buffer_Len; /* 5*/ char *Buffer; /* 6*/ inline void Get_Buffer( const unsigned int Max_Length ); /* 7*/ public: /* 8*/ // Constructors. /* 9*/ String ( const char * Value = NULL ); /*10*/ String ( const String & Value ); /*11*/ // Destructor. /*12*/ ~String ( ) { delete [ ] Buffer; } /*13*/ // Assignment operator. /*14*/ const String & operator = ( const String & Value ); /*15*/ /*16*/ // Get a single character. /*17*/ char & operator [ ] ( unsigned int Index ) const; /*18*/ // Type cast to char *. /*19*/ operator const char * const ( ) const { return Buffer; } /*20*/ // Get the length. /*21*/ unsigned int Length ( ) { return strlen( Buffer ); } /*22*/ private: /*23*/ // Friends . /*24*/ friend int operator == /*25*/ ( const String & Lhs, const String & Rhs ); /*26*/ friend int operator != /*27*/ ( const String & Lhs, const String & Rhs ); /*28*/ friend int operator < /*29*/ ( const String & Lhs, const String & Rhs ); /*30*/ friend int operator > /*31*/ ( const String & Lhs, const String & Rhs ); /*32*/ };