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 ©); 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