Я пытаюсь найти решение ошибки компоновщика для статического члена классаошибка линкера для статического члена класса
Вот код:
//node.h
class Node{
public:
static vector<Node*> nodePointers; //i will use these pointers to access multiple objects of the same class
int id;
int a;
int b;
friend int add(Node*,int);
void itsMyLife(int);
Node();
};
//node.cpp
void Node::itsMyLife(int x){
int answer=0;
if(nodePointers[x]->a<100){
answer=add(this,nodePointers[x]->id);
}
cout<<"Answer in node "<<id<<" is "<<answer<<endl;
}
int add(Node* x, int y){
return x->a+x->nodePointers[y]->b;
}
//main.cpp
int* myInts=new int[10];
vector<int*> intVectors;
for(int i=0;i<10;i++)
intVectors[i]=&myInts[i];
Node* myNodes=new Node[2];
for(int i=0;i<2;i++)
myNodes[0].nodePointers[i]=&myNodes[i];
myNodes[0].id=0;
myNodes[0].a=10;
Когда я компилирую и связь он дает мне ошибку:
неопределенная ссылка на узел :: nodePointers
Почему я получаю эту ошибку? Буду признателен за вашу помощь. Еще раз спасибо.
http://stackoverflow.com/a/12574407/673730 - в «статические данные должны быть определены вне класса в одной единице перевода "часть –