164  6.    

  my_string

 my_string() : len(O)

{ s = new char[l]; assert(s != 0); s[0] = 0; }
my_string(const my_string& str); // 
my_string(const char* p);        // 

   .     ,
     my_s t r ing.    -
.         char,   -
   char * -     my_s t r ing.
     : strlen  strcpy.  -
         \ 0,    
  strlen.    .

 ~my_string() { delete [] s; }

   ,  my_string,  -
 .   delete    ,
     .  delete []  -
 ,    s.

 my_string::my_string(const my_string& str) : len(str.len)

{

s = new char[len + 1] ;

assert(s != 0) ;

strcpy(s, str.s);

  .      -
  my_string  .

  

1. my_string   my_st ring.

2. my_string  ( )    .

3. my_string     .

 C++,     ,   ,  
     .

 void my_string::assign(const my_string& str)

;

if (this == &str) //a == ;   
return;

delete [] s;

len = str.len;

s = new char[len + 1];

assert(s i = 0) ;

strcpy(s, str.s);

}