大大,帮忙看下这个程序,解释下为什么链接通不过?
#include <iostream>
#include <string>
#include <vector>
using namespace std;
class Triangular
{
public:
Triangular(int len=1,int bp=1):_length(len),_beg_pos(bp),_next(_beg_pos-1){}
int beg_pos() const{return _beg_pos;}
int length() const{return _length;}
int elem(int pos) const{return _elems[pos-1];}
private:
int _length;
int _beg_pos;
int _next;
static vector<int> _elems ;
};
int sum(const Triangular &trian);
void main()
{
Triangular t1;
}
int sum(const Triangular &trian)
{
int beg_pos=trian.beg_pos();
int length=trian.length();
int sum=0;
for(int ix=0;ix<length;++ix)
sum+=trian.elem(beg_pos+ix);
return sum;
}
1>------ 已启动生成: 项目: Test_1, 配置: Debug Win32 ------
1>正在链接...
1>main.obj : error LNK2001: 无法解析的外部符号 "private: static class std::vector<int,class std::allocator<int> > Triangular::_elems" (?_elems@Triangular@@0V?$vector@HV?$allocator@H@std@@@std@@A)
1>E:\Test_08\Test_1\Debug\Test_1.exe : fatal error LNK1120: 1 个无法解析的外部命令
1>生成日志保存在“file://e:\Test_08\Test_1\Test_1\Debug\BuildLog.htm”
1>Test_1 - 2 个错误,0 个警告
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
[解决办法]