Click on stack_queue.h to get source.
// File Circlist/MultInher/stack_queue.h
#include "circlist.h"
#include "stack.h"
#include "queue.h"
#include <cstring>
// multiple inheritance example (somewhat constructed for demo purposes)
class stack_queue : public stack, public queue, public virtual circlist {
public:
stack_queue(void) {}
// somehow the default copy constructor causes a compilation error under g++
// stack_queue(const stack_queue& sq) {// should copy circlist of sq here
// }
void entersq(int x, char* how)
{if (strcmp(how, "FILO"))
stack::push(x); // push is ambiguous
else if(strcmp(how, "FIFO"))
enterq(x);
else std::cerr << "Wrong queuing order: " << how << endl;
}
int leavesq(void) {return circlist::pop(); }
};