c++类模板,调用结构体模板出错!!?报错-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

c++类模板,调用结构体模板出错!!?报错

爱吃鱼的程序员 2020-06-09 13:30:48 115

c++类模板,调用结构体模板出错!!

#ifndef _LIST_H_
#define _LIST_H_
template <typename T>
struct Num {
    T num;
    Num *next;
};
template <typename T>
class List {
private:
    Num<T>* pHead;
public:
    List();
    int count();
    void create(T *a, int n);
    void list_();
    void add(T key, int n);
    void Swapat(int a, int b);
    void Swapnum(T num1, T num2);
    int& at(int n);
    void Sort();
    void del(int n);
    void delTheSame();

};
#endif

图片说明
Severity Code Description Project File Line
Error LNK1120 3 unresolved externals Test C:\Users\Sar.Kerson\Desktop\Test1\Test\Debug\Test.exe 1
Severity Code Description Project File Line
Error LNK2019 unresolved external symbol "public: __thiscall List::List(void)" (??0?$List@H @@QAE@XZ) referenced in function main Test C:\Users\Sar.Kerson\Desktop\Test1\Test\Test\main.obj 1
Severity Code Description Project File Line
Error LNK2019 unresolved external symbol "public: void __thiscall List::create(int *,int)" (?create@?$List@H @@QAEXPAHH@Z) referenced in function _main Test C:\Users\Sar.Kerson\Desktop\Test1\Test\Test\main.obj 1
Severity Code Description Project File Line
Error LNK2019 unresolved external symbol "public: void __thiscall List::list
(void)" (?list_@?$List@H@@QAEXXZ) referenced in function _main Test C:\Users\Sar.Kerson\Desktop\Test1\Test\Test\main.obj 1

求助大侠这是怎么回事?!(以下为几个报错函数的实现)

template <typename T>
List<T>::List() {
    pHead = NULL;
}
template <typename T>
void List<T>::create(T *a, int n) {
    Num<T> *pTail = NULL;
    for (int i = 0; i < n; ++i) {
        Num<T> *t = new Num<T>;
        t->num = a[i];
        t->next = NULL;
        if (pHead == NULL) {
            pHead = t;
            pTail = pHead;
        }
        else {
            pTail->next = t;
            pTail = t;
        }
    }
}
template <typename T>
void List<T>::list_() {
    Num<T> *t = pHead;
    while (t != NULL) {
        cout << t->num << " ";
        t = t->next;
    }
    cout << endl;
}
人工智能 C++
分享到
取消 提交回答
全部回答(1)
  • 爱吃鱼的程序员
    2020-06-09 13:31:05

    <spanstyle="color:#333333;font-family:'MicrosoftYaHei';font-size:14px;line-height:24px;background-color:#F8FEEE;">把实现和类定义放在同一个文件里(#include实现或者直接写在一个文件里),模板和内联一样,分开放的话链接的时候模板没法实例化

    0 0
人工智能
使用钉钉扫一扫加入圈子
+ 订阅

了解行业+人工智能最先进的技术和实践,参与行业+人工智能实践项目

推荐文章
相似问题
推荐课程