const int D_SIZE = 16; class Cirbuf { public: Cirbuf(int size = D_SIZE); // constructor int produce(char c); int consume(); int is_empty() { return(length == 0); } int is_full() { return(length == size); } ~Cirbuf(); // destructor private: int head; // first char in buffer int tail; // first empty slot in buffer int length; // number of characters in buffer int size; // capacity of buffer char *cb; // pointer to buffer int mod(int x) { return(x >= size ? x - size : x); } };