有一个文件连接问题
这是essential C++中的例子。
发现了一个连接问题,conpile过了,build不过。
简化的代码如下:
#include <iostream>
#include <vector>
using namespace std;
class num_sequence
{
public:
num_sequence(int beg_pos,int len,vector<int> &r):_beg_pos(beg_pos),_lenth(len),_relem(r) {}
virtual ~num_sequence(){}
protected:
int _beg_pos;
int _lenth;
vector<int> &_relem;
};
class fibonacci : public num_sequence
{
protected:
static vector<int> _elem;
public:
fibonacci(int beg_pos,int lenth):num_sequence(beg_pos,lenth,_elem) {}
};
int main()
{
fibonacci fib(1,1);
return 0;
}
错误:unresolved external symbol "protected: static class std::vector<int,class std::allocator<int> > fibonacci::_elem" referenced in function "public: __thiscall fibonacci::fibonacci(int,int)
[解决办法]
在类里面声明了_elem,但是没有在类外面定义_elem对象。静态数据成员都需要在类外面定义,类里面的只是声明。
[解决办法]
在cpp里定义下
fibonacci::vector<int> _elem;