我是 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;
}
标头.h:
ifndef __HEADER__
#define __HEADER__
#include<iostream>
#include<vector>
#include"myClass.h"
using namespace std;
extern std::vector<myClass> abc;
#endif
主.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;
}
解决方案已在什么是未定义的引用/未解决的外部符号错误以及如何解决? 但我不知道如何实现它。