nclass string {
n public:
n string(): str(0), len(0) {}; //constructor
n string(const string &); //copy constructor
n ~string(); //destructor
n string
& operator = (const string & );
//assignment
n •••
n private:
n char * str;
n int len;
n};
n
nstring & operator
= (const string & s2) {
n if (this == &s2) //check for self assignment
n return *this;
n if (str) //current object has a value
n delete [] str; //deallocate any dynamic memory
n str = new char [s2.len+1];
n strcpy(str,s2.str);
n len = s2.len;
n return *this;
n}