232                         _____  8. :   

8.4.    

   ,      -
   .     ,   
 . ,    ,   
   .

  my_string,       -
 6.10, ,   ,  . 197.  -
 my_string        str_obj. 
    str_obj, , , -
    ,    
my_string.    ,   
    str_obj.

  string8. h

class str_obj {
private:

friend class my_string;

friend class string_iterator;

friend ostream&

operator(ostreamb out, const my_string& str);

int len, ref_cnt;

char* s;

str_obj():len(0), ref_cnt(l) { s = new char[l];}
str_obj(int n) : len(n), ref_cnt(l)

{ s = new char[n + 1]; }
str_obj(const char* p) : ref_cnt(l)

{ len = strlen(p); s = new char[len + 1] ;

strcpy(s, p); }
-str_obj() { delete [] s; }

          -
         .

       .
  .  -    my_string, -
      ,   
 .

  strings, h

class my_string (
public:

my_string() { st = new sfcr_obj; }

my_string(int n) { st = new sfcr_obj(n); }

my_string(const char* p) { st = new str_obj(p); }

my_string(const my_string& str)

{ st = str.st; st -> ref_cnt++; }