1/**********************************************************************
2 * FILE:        MJRString.H
3 * AUTHOR:      Michael J. Radwin
4 * DATE:        01/28/95
5 * DESCRIPTION: The public interface for the String class
6 * MODIFIED:    02/27/95
7 * CREDITS:     some code borrowed from Deitel, "How to Program C++"
8 **********************************************************************/
9
10#ifndef __MJRString_H__
11#define __MJRString_H__
12
13#include <iostream.h>
14
15class MJRString {
16  friend ostream & operator<<(ostream&, const MJRString &s);
17  friend istream & operator>>(istream&, MJRString &s);
18
19public:
20  MJRString(const char* s = "");
21  MJRString(const MJRString &copy);
22  MJRString(double value);
23  MJRString(int value);
24  ~MJRString();
25
26  // assignment
27  const MJRString & operator=(const MJRString &right);
28  const MJRString & operator=(const char *right);
29  const MJRString & operator+=(const MJRString &right);
30  const MJRString & operator+=(const char *right);
31
32  // comparisons
33  int operator! () const;
34  int operator==(const MJRString &right) const;
35  int operator==(const char *right) const;
36  int operator!=(const MJRString &right) const;
37  int operator!=(const char *right) const;
38  int operator< (const MJRString &right) const;
39  int operator< (const char *right) const;
40  int operator> (const MJRString &right) const;
41  int operator> (const char *right) const;
42  int operator<=(const MJRString &right) const;
43  int operator<=(const char *right) const;
44  int operator>=(const MJRString &right) const;
45  int operator>=(const char *right) const;
46
47  // auxiliary
48  MJRString operator+(const MJRString &right) const;
49  MJRString operator+(const char *right) const;
50  char & operator[](int subscript);
51  char operator[](int subscript) const; // safe for const
52  MJRString operator()(int index, int subLength) const;
53  int length() const;
54
55protected:
56  char *pStr_;
57  int length_;
58} ;
59
60#endif
61