    21:	cout  "\nValue of a == "  a.GetValueO; 
    22:	cout  "\nValue of b == "  b.GetValueO; 
    23:	cout  "\na + b +   6 == "  (a + b + 6); 
    24:	cout  "\na - b + 10 == "  (a - b + 10) 
    25:	 '\n'; 
    26:	return 0; 
    27:	} 
    28: 
    29:	TStrOp::TStrOp(const char *s) 
    30:	{ 
    31:	  strncpy(value, s, 11); 
    32:	   value[11] = 0; 
    33:	} 
    34: 
    35:	long TStrOp::operator+(TStrOp b) 
    36:	{ 
    37:	    return (atol(value) + atol(b,value)); 
    38:	} 
    39: 
    40:	long TStrOp::operator-(TStrOp b) 
    41:	{ 
    42:	   return (atol(value) - atol(b.value)); 
    43:	} 

       -,    
12-13     32-33.       
TStrOp,          ,  
,      .  ,  - 
  this,   ,     . 
,      ,   ,  
.      operator+()   
 ,   this->value  .value. 
    -  -    
.    : operator+()   12  : 

    long operator+(TStrOp a,  TStrOp b);      // ??? 

       ,  operator+()    TStrOp  
 -   this,    .  
  this     b     ,  
  ,  operator+(),   
.      TStrOp  operator+()  
this.value  b.value ( 37).     . - 
operator-()    this , ,    
       ( 40-43). 

       

     ,      ,  
  .          
 ,     . 
          ,     
      .   
        , 
   (  ,     ). 
,     STROPS2.CPP ( 12.5)   
private:   6: friend long operator-(TStrOp a); 
           13   , 
  ,       . 
-   13    this. Ho ,  
  ,    this.    
   ,    ,    
  main():

    long operator-(TStrOp a) 
    {
      return -atol(a.value); 
    }

        ""   ,  return  
      ,    
TStrOp.   ,     , 
       . ,  
    main() (    20): 

    cout "\-   == "  - ; 


    15.   C++     375 
