home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 7 / 07.iso / c / c021 / 7.img / EXAMPLES.ZIP / XSTRING.CPP < prev   
Encoding:
C/C++ Source or Header  |  1990-05-04  |  1.7 KB  |  71 lines

  1. //XSTRING.CPP--Example from Chapter 5 of Getting Started */
  2. // version of STRING.CPP with overloaded operator +
  3.  
  4. #include <iostream.h>
  5. #include <string.h>
  6.  
  7. class String {
  8.    char *char_ptr;   // pointer to string contents
  9.    int length;       // length of string in characters
  10. public:
  11.    // three different constructors
  12.    String(char *text);           // constructor using existing string
  13.    String(int size = 80);        // creates default empty string
  14.    String(String& Other_String); // for assignment from another
  15.                                  // object of this class
  16.    ~String() {delete char_ptr;}; // inline destructor
  17.    int Get_len (void);
  18.    String operator+ (String& Arg);
  19.    void Show (void);
  20. };
  21.  
  22. String::String (char *text)
  23. {
  24.    length = strlen(text);  // get length of text
  25.    char_ptr = new char[length + 1];
  26.    strcpy(char_ptr, text);
  27. };
  28.  
  29. String::String (int size)
  30. {
  31.    length = size;
  32.    char_ptr = new char[length+1];
  33.    *char_ptr = '\0';
  34. };
  35.  
  36. String::String (String& Other_String)
  37. {
  38.    length = Other_String.length;       // length of other string
  39.    char_ptr = new char [length + 1];   // allocate the memory
  40.    strcpy (char_ptr, Other_String.char_ptr); // copy the text
  41. };
  42.  
  43. String String::operator+ (String& Arg)
  44. {
  45.   String Temp( length + Arg.length );
  46.   strcpy(Temp.char_ptr, char_ptr);
  47.   strcat(Temp.char_ptr, Arg.char_ptr);
  48.   return Temp;
  49. }
  50.  
  51. int String::Get_len(void)
  52. {
  53.    return (length);
  54. };
  55.  
  56. void String::Show(void)
  57. {
  58.    cout << char_ptr << "\n";
  59. };
  60.  
  61. main ()                                // test the functions
  62. {
  63.    String AString ("The Quick Brown fox");
  64.    AString.Show();
  65.  
  66.    String BString(" jumps over Bill");
  67.    String CString;
  68.    CString = AString + BString;
  69.    CString.Show();
  70. }
  71.