模板和类

时间:2018-06-21 15:24:44

标签: templates

我对如何使用模板功能感到困惑。我也不理解struct内部的Nodes的含义。

这是空的声明:

#ifndef DoublyLinkedList_hpp
#define DoublyLinkedList_hpp

#include <stdio.h>
#include <stdexcept>

template <typename Type>
class DoublyLinkedList {

public:
    DoublyLinkedList();
    unsigned int size();
    bool isEmpty();
    void insert(Type& e);
    unsigned int find(Type& e);
    void erase(unsigned int index);
    void show();
    void sort();
    Type& getHead();
    Type& getTail();
    Type& operator[] (const unsigned int index);

private:
    struct Node {
        Type data;
        Node* prev;
        Node* next;
    };

    unsigned int n;
    Node* header;
    Node* trailer;

};

对于空实现,我有以下代码:

template< typename Type>
DoublyLinkedList <Type>::DoublyLinkedList()

{




}
template< typename Type>
unsigned int DoublyLinkedList<Type>::size()
{

}
template< typename Type>
bool DoublyLinkedList<Type>::isEmpty()
{

}
template< typename Type>
void DoublyLinkedList<Type>::insert(Type& e)
{

}
template< typename Type>
unsigned int DoublyLinkedList<Type>::find(Type& e)
{

}
template< typename Type>
void DoublyLinkedList<Type>::erase(unsigned int index)
{

}
template< typename Type>
void DoublyLinkedList<Type>::show()
{

}
template< typename Type>
void DoublyLinkedList<Type>::sort()
{

}
template< typename Type>
Type& DoublyLinkedList<Type>::getHead()
{
    return header;

}
template< typename Type>
Type& DoublyLinkedList<Type>::getTail()
{
}
template< typename Type>
Type& DoublyLinkedList<Type>::operator[] (const unsigned int index)
{

}

#endif /* DoublyLinkedList_hpp */

现在,我已经填充了构造函数和其他函数的代码,但出现错误  1> main.obj:错误LNK2019:未解析的外部符号“ public:__thiscall DoublyLinkedList :: DoublyLinkedList(void)”(?? 0?$ DoublyLinkedList @ VMovie @@@@ QAE @ XZ)在函数“ void __cdecl ____ C_A_T_C_H ____ T_E_S( )”(?____ C_A_T_C_H ____ T_E_S_T ____ 104 @@ YAXXZ)

请有人帮忙填写构造函数列表,并帮助我理解Struct中的Nodes。

非常感谢!

0 个答案:

没有答案