home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 17 / CD_ASCQ_17_101194.iso / dos / prg / todb101 / todb / lib / strn.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-04-26  |  1.4 KB  |  71 lines

  1. // ========================================================================
  2. //  TODB LIBRARY
  3. //    strn.h
  4. //
  5. //    String class
  6. //
  7. //    Version: see TODB.H file
  8. //
  9. //    Copyright 1993 Christian Thérien
  10. //    All rights reserved
  11. // ========================================================================
  12.  
  13. #ifndef _STRN_H
  14. #define _STRN_H
  15.  
  16. #include <stddef.h>
  17.  
  18. class String
  19. {
  20. public:
  21.     // constructor
  22.     String();
  23.     String( const String & str );
  24.     String( const char * cstr );
  25.     String( size_t count, char fillCh = '\0' );
  26.  
  27.     // destructor
  28.     ~String();
  29.  
  30.     // string length
  31.     size_t Length() const;
  32.  
  33.     // return a c string
  34.     operator char * () const;
  35.  
  36.     // assignment
  37.     String & operator = ( const String & str );
  38.     String & operator = ( const char * str );
  39.  
  40.     // concatenation (3 operands)
  41.     friend String operator + ( const String & str1, const String & str2 );
  42.     // concatenation (2 operands)
  43.     void operator += ( const String & str );
  44.  
  45. private:
  46.     size_t len_; // string length
  47.     char * buf_; // pointer to string
  48. };
  49.  
  50. inline String::~String()
  51. {
  52.     delete [] buf_;
  53. }
  54.  
  55. inline size_t String::Length() const
  56. {
  57.     return len_;
  58. }
  59.  
  60. inline void String::operator += ( const String & str )
  61. {
  62.     *this = *this + str;
  63. }
  64.  
  65. inline String::operator char * () const
  66. {
  67.     return buf_;
  68. }
  69.  
  70. #endif // _STRN_H
  71.