类模板和结构体模板是如何进行带类型信息参数/用模板参数进行new运算
结构体模板:
template<typename T>
class Node
{
public:
Node<T> *next; //指向后继结点的指针
T data; //数据域
Node();
Node(const T &data, Node<T> *next = 0); //构造函数
~Node(); //析构函数
};
template<typename T>
Node<T>::Node(const T& data, Node<T>* next = 0 )
:data(data),next(next)
{
//Operation
}
template<typename T>
Node<T>::Node()
{
}
template<typename T>
Node<T>::~Node()
{
}
那么如何用 模板参数/类型信息 进行new运算呢?
Node<int>* tem = new Node<int>(12,NULL); //用带类型信息的模板进行new运算
Node<T>* tempNode = new Node<T>(item,NULL); //用模板参数进行new运算
用构造函数构造对象:
Node<int> nodes(12,NULL);
普通类模板:
template<typename T> class LinkedList { private: public: LinkedList(); LinkedList(const LinkedList<T>& L); ~LinkedList(); } template<typename T> Node<T> * LinkedList<T>::LinkedList() { }
template<typename T> Node<T> * LinkedList<T>::LinkedList(LinkedList<T>& L) { //operation here }
那么类模板如何用 模板参数/类型信息 进行new运算呢?
LinkedList<T> *temp = new LinkedList<T>(); //用模板参数进行new运算
LinkedList<int> *Tmep = new LinkedList<int>(); //用带类型信息的模板进行new运算
用构造函数构造对象:
LinkedList<int> lists;
LinkedList<int> list(lists);