home *** CD-ROM | disk | FTP | other *** search
/ The Devil's Doorknob BBS Capture (1996-2003) / devilsdoorknobbbscapture1996-2003.iso / Dloads / OTHERUTI / TCPP10-7.ZIP / EXAMPLES.ZIP / STRING.CPP < prev    next >
C/C++ Source or Header  |  1990-09-26  |  2KB  |  62 lines

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