home *** CD-ROM | disk | FTP | other *** search
/ The Devil's Doorknob BBS Capture (1996-2003) / devilsdoorknobbbscapture1996-2003.iso / Dloads / OTHERUTI / TCPP30-3.ZIP / EXAMPLES.ZIP / XSTRING.CPP < prev   
C/C++ Source or Header  |  1992-02-18  |  2KB  |  73 lines

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