home *** CD-ROM | disk | FTP | other *** search
/ CD Actual 13 / CDA13.ISO / cdactual / demobin / share / program / C / ANSICPP.ZIP / EX08009.CPP < prev    next >
Encoding:
C/C++ Source or Header  |  1990-07-24  |  693 b   |  35 lines

  1. // ex08009.cpp
  2. // Overloaded [] operator
  3. #include <iostream.h>
  4. #include <string.h>
  5.  
  6. class String    {
  7.     char *sptr;
  8. public:
  9.     String(char *);
  10.     ~String() { delete sptr; }
  11.     void display() { cout << '\n' << sptr; }
  12.     char& operator[] (int n) { return *(sptr + n); }
  13.     char *operator+  (int n) { return sptr + n; }
  14. };
  15.  
  16. String::String(char *s)
  17. {
  18.     sptr = new char[strlen(s)+1];
  19.     strcpy(sptr, s);
  20. }
  21.  
  22. main()
  23. {
  24.     String mystring("The Ides of March");
  25.     mystring.display();
  26.     cout << '\n' << *(mystring+4);
  27.     *(mystring+4) = '1';
  28.     *(mystring+5) = '5';
  29.     *(mystring+6) = 't';
  30.     *(mystring+7) = 'h';
  31.     mystring.display();
  32.     strncpy(mystring+4, "21st", 4);
  33.     mystring.display();
  34. }
  35.