一个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;
} 展开
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;
} 展开
展开全部
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;
}
#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;
}
展开全部
vector< vector<ORI_Point> > m_vector_array; 在类里只是声明并没有定义啊
你必须在类外,全局域中定义一下,也就是初始化,比如。
m_test::m_vector_array()
你必须在类外,全局域中定义一下,也就是初始化,比如。
m_test::m_vector_array()
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
那应该是你vector里面的ORI_POINT对象,系统在这个文件中不能解析
更多追问追答
追问
但是
我在main里面直接定义是可以的。
例如:vector tempP;
vector > temp_vec;
temp_vec.push_back(tempP);
这样写在main里面是可以的。
追答
那你m_test这个类的头文件,在main函数这个文件中包含了么?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我看错了 ,不好意思
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询