【发布时间】:2013-06-11 11:29:39
【问题描述】:
我是 C++ 新手。我在使用向量时遇到了一个未解决的外部符号错误,不知道出了什么问题,所以我在这里复制了它。
我使用的是 MS Visual Studio 2011。确切的错误是:
错误 LNK2001:未解析的外部符号“类 std::vector > abc” (?abc@@3V?$vector@VmyClass@@V?$allocator@VmyClass@@@std@@@std@@A)
我在 myClass.h 中有我的班级声明:
#ifndef __MYCLASS__
#define __MYCLASS__
class myClass{
public:
int var;
myClass(void);
myClass (int k);
};
#endif
以及我在 myClass.cpp 中的类定义:
#include"myClass.h"
myClass::myClass(void){
var=0;
}
myClass::myClass (int k){
var=k;
}
header.h:
ifndef __HEADER__
#define __HEADER__
#include<iostream>
#include<vector>
#include"myClass.h"
using namespace std;
extern std::vector<myClass> abc;
#endif
main.cpp:
#include <iostream>
#include <vector>
#include "myClass.h"
#include "header.h"
using namespace std;
int main(){
abc.push_back(myClass(5));
return 1;
}
这是我得到未解决的外部符号错误的地方。现在我尝试将所有这些都放在一个文件中,并且编译正常。
以下文件未包含在上述项目中。
#include<iostream>
#include<vector>
#include"myClass.h"
using namespace std;
class myClass{
public:
int var;
myClass(void){
var=0;
}
myClass (int k){
var=k;
}
};
int main(){
std::vector<myClass> abc;
abc.push_back(myClass(5));
return 1;
}
解决方案已在What is an undefined reference/unresolved external symbol error and how do I fix it? 但我不知道如何实现它。
【问题讨论】:
标签: c++ vector header undefined-reference