home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Source Code / C++ / Applications / Lookup 1.0d2 / Includes / CString.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-08-26  |  1.1 KB  |  58 lines  |  [TEXT/CWIE]

  1. /*
  2.     CString.h
  3.  
  4.     History:    
  5.         1/2/95        AJR        Created.
  6.  
  7. */
  8.  
  9. #pragma once
  10. #ifndef __CString__
  11. #define __CString__
  12.  
  13. #include <string>
  14.  
  15. class CString : public string
  16. {
  17. public:
  18.     CString()
  19.         : string() {}
  20.     CString(size_t _N, capacity _C)
  21.         : string(_N, _C) {}
  22.     CString(const string& _X, size_t _P = 0, size_t _N = NPOS)
  23.         : string(_X, _P, _N) {}
  24.     CString(const CString& _X, size_t _P = 0, size_t _N = NPOS)
  25.         : string(_X, _P, _N) {}
  26.     CString(const char *_S, size_t _N = NPOS)
  27.         : string(_S, _N) {}
  28.     CString(const unsigned char * _S)
  29.         : string((const char *)(_S + 1), _S[0]) {}
  30.     CString(char _C, size_t _N = 1)
  31.         : string(_C, _N) {}
  32.     CString(unsigned char _C, size_t _N = 1)
  33.         : string(_C, _N) {}
  34. #if _HAS_SIGNED_CHAR
  35.     CString(signed char _C, size_t _N = 1)
  36.         : string(_C, _N) {}
  37. #endif
  38.  
  39.     ~CString() { this->string::~string(); }
  40.  
  41.     const StringPtr ToPString() const;
  42.     operator const StringPtr () const { return ToPString(); }
  43.     
  44.     CString & ExtractFromAEDesc(const AEDesc & inDesc);
  45.     
  46. private:
  47.     enum {
  48.         kTempStringCount = 4
  49.     };
  50.     
  51.     static Str255 sTempString[kTempStringCount];
  52.     static unsigned short sNextString;
  53. };
  54.  
  55. extern CString sEmptyString;
  56.  
  57. #endif
  58.