class Fibonacci:public abstract_num_sequence
{
public:
Fibonacci(int len = 1, int beg_pos = 1) :m_length(len), m_beg_pos(beg_pos) {};
virtual int elem(int pos) const;
virtual const char* what_am_i() const { return "Fibonacci"; }
virtual ostream& print(ostream& os = cout) const;
int length() const{ return m_length; }
int begin_pos() const { return m_beg_pos; }
//~Fibonacci();
protected:
//bool check_integrity(int pos) const;
virtual void gen_elems(int pos) const;
int m_length;
int m_beg_pos;
static vector<int> m_elems;
private:
};
出错提示:
提示出错是在static vector<int> m_elems;
这一句。
查询后得知,静态成员变量只能在类外初始化
static vector<int> m_elems;
这句只是声明了,但并没有初始化,还需在类外加上
vector<int> Fibonacci::m_elems;
参考链接:百度知道