Program Example: resize()
void String::resize(int size){
if (buffer == O); // no previous allocation
buffer = new char[1+ size];
else if (size > strlen(buffer)) {
String () : buffer(0) { } // constructors
String (const char * right) : buffer(0)
{ resize(strlen(right)); strcpy(buffer, right); }
String (const String & right) : buffer(0)
{ resize(strlen(right.buffer)); strcpy(buffer, right.buffer);
String () { delete [ ] buffer; } // destructor
void operator = (const String & right) // assignment
{ resize(strlen(right.buffer)); strcpy(buffer, right.buffer); }
delete [ ] buffer; // recover old value
buffer = new char[1 + size];}