// Main objective of an abstract class is to provide
// a partial implementation which is common to
// all concrete implementation. The concrete implementations
// themselves can be different from each other, but they all
// provide the same interface.

#include<iostream>
using std::cout;
class Channel {
protected:
  int buffer[10];
  int size;

  public:
  	virtual void send(int data) = 0;
  	virtual int receive () = 0;
};

class FIFOChannel: public Channel {
  public:
  	FIFOChannel () { };
  	virtual void send(int data);
  	virtual int receive ();
};
class LIFOChannel: public Channel {
  public:
  	LIFOChannel () { };
  	virtual void send(int data);
  	virtual int receive ();
};


main () {


}
