C++ 模板类

来源:互联网 发布:网络借贷风险 编辑:程序博客网 时间:2024/06/03 20:10

BST.h

template<typename T,typename S>class Node{public:    Node(T a, S b, int c);    ~Node();private:    T key;    S value;    Node* left;    Node * right;    int N;};template<typename T, typename S>Node<T, S>::~Node(){}template<typename T, typename S>Node<T,S>::Node(T _key,S _value,int _N){}template<typename T, typename S>class BST{public:    BST();    ~BST();    int size(Node<T,S> *node){ return node.N; }    int size(){ return size(root); }    S get(T value);    void put(T key, S value);private:    Node<T, S> *root;    S _get(Node<T, S> *x, T key);    void _put(T key, S value);};template<typename T, typename S>BST<T,S>::BST(){}template<typename T, typename S>BST<T,S>::~BST(){}

BST.cpp

#include"BST.h"template<typename T, typename S>void BST<T, S>::_put(T key, S value){}template<typename T, typename S>void BST<T, S>::put(T key, S value){    _put(key, value);}template<typename T, typename S>S BST<T, S>::_get(Node<T, S> *x, T key){    if (x == nullptr)return NULL;    return NULL;}template<typename T, typename S>S BST<T, S>::get(T key){    return _get(root, key);}

main函数调用的时候,#include"BST.cpp" 而不是"#include"BST.h" 否则会报出error LNK2019: 无法解析的外部符号,XXXXX该符号在函数 _main 中被引用
还有个方法就是main函数#include"BST.h",把BST.cpp 的内容全部放在BST.h 中去,删除BST.cpp。也可以正常编译运行

0 0