Obtengo algunos errores de enlace realmente extraños de una clase que escribí. No puedo encontrar nada que describa lo que está sucediendo.Errores de vinculación de C++: símbolos no definidos que utilizan una clase de plantilla
Visual Studio (Windows XP)
players.obj: LNK2019 de error: símbolo externo sin resolver "público: __thiscall NodoArbol :: TreeNode (void)"? (?? 0 $ NodoArbol @ VPlayer @@@ @ QAE @ XZ) que se hace referencia en la función "pública: __thiscall playerlist :: playerlist (void)" (?? 0PlayerList @@ QAE @ XZ)
Xcode (OSX 10,5)
símbolos no definidos: "TreeNode :: ~ TreeNode()", a la que se hace referencia desde: Playerlist :: ~ playerlist() en players.o
del encabezado del archivo: generics.h
class TreeNode : public BaseNode{
public:
const static int MAX_SIZE = -1; //-1 means any size allowed.
const static int MIN_SIZE = 0;
//getters
int size() const;
vector<C*> getChildren() const;
//setters
void setChildren(vector<C*> &list);
//Serialization
virtual void display(ostream &out) const;
virtual void read(istream &in);
virtual void write(ostream &out) const;
//Overrides so SC acts like an array of sorts.
virtual C* get(int id) const;
virtual int get(C *child) const;
virtual bool has(C *child) const;
virtual C* pop(int id);
virtual void push(C *child);
virtual TreeNode& operator<< (C *child); //append
virtual void remove(int id); //Clears memory
virtual void remove(C *child); //Clears memory
//Initalizers
TreeNode();
TreeNode(istream &in);
TreeNode(long id, istream &in);
TreeNode(BaseNode* parent, istream &in);
TreeNode(long id, BaseNode* parent);
TreeNode(long id, BaseNode* parent, istream &in);
~TreeNode();
string __name__() const{ return "TreeNode"; }
protected:
void clearChildren();
void initalizeChildren();
vector<C*> _children;
};
Código de una subclase de NodoArbol
PlayerList::PlayerList() : TreeNode<Player>(){}
PlayerList::PlayerList(istream &in) : TreeNode<Player>(in){}
PlayerList::~PlayerList(){}
¿Dónde está el código que define NodoArbol :: ~ NodoArbol()? –
El código está en generics.cpp – epochwolf