一个c++vector的问题,求高手指点。编译器提示是:error LNK2001: 无法解析的外部符号 "public: static c

代码如下:classm_test{public:staticvector<vector<ORI_Point>>m_vector_array;};int_tmain(int... 代码如下:

class m_test{
public:
static vector< vector<ORI_Point> > m_vector_array;
};

int _tmain(int argc, _TCHAR* argv[])
{
vector<ORI_Point> tempP;
m_test::m_vector_array.push_back(tempP);

return 0;
}
展开
 我来答
千江月success
推荐于2017-11-28 · TA获得超过827个赞
知道小有建树答主
回答量:1031
采纳率:100%
帮助的人:914万
展开全部
static成员必须在类外初始化,(除非是静态整型常量可以直接声明的时候初始化)
#include <vector>
using namespace std;
class m_test{
public:
static vector< vector<int> > m_vector_array;
};
vector< vector<int> > m_test::m_vector_array;
int main()
{
vector<int> tempP;
m_test::m_vector_array.push_back(tempP);
return 0;
}
tn...6@163.com
2013-05-20 · TA获得超过116个赞
知道答主
回答量:151
采纳率:0%
帮助的人:105万
展开全部
vector< vector<ORI_Point> > m_vector_array; 在类里只是声明并没有定义啊

你必须在类外,全局域中定义一下,也就是初始化,比如。

m_test::m_vector_array()
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Ben_jli
2013-05-20 · 超过21用户采纳过TA的回答
知道答主
回答量:209
采纳率:0%
帮助的人:75.7万
展开全部
那应该是你vector里面的ORI_POINT对象,系统在这个文件中不能解析
更多追问追答
追问
但是
我在main里面直接定义是可以的。
例如:vector tempP;
vector > temp_vec;
temp_vec.push_back(tempP);

这样写在main里面是可以的。
追答
那你m_test这个类的头文件,在main函数这个文件中包含了么?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lastone1
2013-05-20 · 超过25用户采纳过TA的回答
知道答主
回答量:136
采纳率:0%
帮助的人:81.5万
展开全部
我看错了 ,不好意思
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式