5.1. -                                                  133

//,   -

void reset() { top = EMPTY; }

void push (char c) { top++; s[fcop] = c; }

char pop() { return s[top--]; }

char top_of() { return s[top]; }

bool empty() { return (top == EMPTY); }

bool full() { return (top == FULL); }
};

- (member function)    . -
    ,       
 . , - ch_stack   top  s  -
   .   -   -
   ch_stack       
 .

    .    -
  ch_stack:

ch_stack data, operands;



data.reset () ;

operands.reset() ;

 - reset,   data. top  operands . top
  EMPTY.     ch_stack

ch_stack* ptr_operands = &operands;



ptr_operands -> push('A');

 - push,     operands . top 
 operands . s [top]  ''.   :  -
 top_of ()      ,  -
  .

-,    struct,   -
.  ,  ,   -
   struct,      . -
  -  struct,    -
  (scope resolution).   ,  -
  push   ch_stack   .
  ,     .  
      .

struct ch_stack {
// 

int top;

enum {max_len = 100, EMPTY = -1, FULL = max_len-l};

char s [rnax_len] ;