header/cpp file combined in .h file since using templates:
Main:Code:template <class Entry> struct Binary_node { Entry data; Binary_node<Entry> *left; Binary_node<Entry> *right; Binary_node(); //constructors Binary_node(const Entry &x); }; template <class Entry> class Binary_tree { public: Binary_tree(); void insert(const Entry &); private: Binary_node<Entry> *root; void recursive_insert (Binary_node<Entry> *&sub_root, const Entry &data); }; template <class Entry> Binary_node<Entry>::Binary_node() {left=right=NULL;} template <class Entry> Binary_tree<Entry>::Binary_tree() { this->root=NULL; } template <class Entry> void Binary_tree<Entry>::insert(const Entry &data) { recursive_insert(root,data); } template <class Entry> void Binary_tree<Entry>::recursive_insert(Binary_node<Entry> *&sub_root, const Entry &data) { if (sub_root==NULL) sub_root=new Binary_node<Entry>(data); else if (data.key<sub_root->data.key) recursive_insert(sub_root->left,data); else recursive_insert(sub_root->right,data); }
Getting this linker error:Code:struct datanode { int key; float gpa; }; int main () { Binary_tree<datanode> tree; datanode data; data.key=89; data.gpa=3.3; tree.insert(data); }
[edit] - Sorry copied the wrong main, corrected... linker error is for the current one.error LNK2019: unresolved external symbol "public: __thiscall Binary_node<struct datanode>::Binary_node<struct datanode>(struct datanode const &)" (??0?$Binary_node@Udatanode@@@@QAE@ABUdatanode@@@Z ) referenced in function "private: void __thiscall Binary_tree<struct datanode>::recursive_insert(struct Binary_node<struct datanode> * &,struct datanode const &)" (?recursive_insert@?$Binary_tree@Udatanode@@@@AAEX AAPAU?$Binary_node@Udatanode@@@@ABUdatanode@@@Z)



LinkBack URL
About LinkBacks




