vector的一个编译错误
stack1.h
#ifndef STACK1_H_INCLUDED#define STACK1_H_INCLUDED#include <iostream>#include <ostream>#include <vector>using namespace std;class Stack1 {public: Stack1() : _max_size(1024) { _vec.reserve(_max_size);} Stack1(int max_size) : _max_size(max_size) { _vec.reserve(_max_size);} virtual ~Stack1(){}; virtual bool pop(int &) const = 0; virtual bool push(const int &) const = 0; virtual int size() const = 0; virtual bool empty() const = 0; virtual bool full() const = 0; virtual bool peek(int &) const = 0; virtual ostream& print(ostream &os) const = 0;public: vector<int> _vec; int _max_size;};#endif // STACK1_H_INCLUDED#include <iostream>#include "stack1.h"#include <vector>using namespace std;class FIFO_Stack1 : public Stack1 {public: FIFO_Stack1() {} FIFO_Stack1(int max_size) : Stack1(max_size) { } virtual bool pop(int &) const; virtual bool push(const int &) const; virtual int size() const { return _vec.size();} virtual bool empty() const { return _vec.empty();} virtual bool full() const { return _max_size <= _vec.size();} virtual bool peek(int &) const; virtual ostream& print(ostream &os) const;/*protected: vector _vec; int _max_size;*/};bool FIFO_Stack1::pop(int &elem) const { if (empty()) return false; elem = _vec.back(); _vec.pop_back(); //编译错误 return true;}bool FIFO_Stack1::push(const int &elem) const { if ( full() ) return false; _vec.push_back(elem); //编译错误 return true;}bool FIFO_Stack1::peek(int &elem) const { if ( full() ) return false; elem = _vec.back(); return true;}ostream& FIFO_Stack1::print( ostream &os ) const { os << "print FIFO_Stack\n"; for(int i=0; i< _vec.size(); i++) { os << _vec[i] << ' '; } os << '\n'; return os;}