I am new to C++. I had an unresolved external symbol error while using vectors and didn't know what was going wrong so I've replicated it here.
I am using MS Visual Studio 2011. The exact error is:
error LNK2001: unresolved external symbol "class std::vector > abc" (?abc@@3V?$vector@VmyClass@@V?$allocator@VmyClass@@@std@@@std@@A)
I have my class declaration in myClass.h:
#ifndef __MYCLASS__
#define __MYCLASS__
class myClass{
    public:
        int var;
        myClass(void);
        myClass (int k);
};
#endif  
and my class definition in 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;
}
This is where I get the unresolved external symbol error. Now I tried putting all of these in a single file and it compiled alright.
THE FOLLOWING FILE IS NOT INCLUDED IN THE ABOVE PROJECT.
#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;
}
The solution has been given at What is an undefined reference/unresolved external symbol error and how do I fix it? but I can't figure out how to implement it.
 
     
     
     
    