This question already has answers here:
Why can templates only be implemented in the header file?
                                
                                    (16个答案)
                                
                        
                                5年前关闭。
            
                    
我的最后一个问题:my last post

我在上一篇文章中解决了这个问题。到目前为止一切都很好。有一个新问题。

在项目A中,我已经编码了一个linkedList类模板。

#ifndef LINKEDLIST_H_
#define LINKEDLIST_H_


template<class T>
struct Node{
        T value;
        Node* next;
    };


template<class T>
class linkedList
{

private:
    Node<T>* head;
public:

    bool isEmpty() const{ return head == nullptr;}
    Node<T>* getHead() const{return head;}
    bool existVal(T value) const;
    void insertVal(T value);
    void deleteVal(T value){}



    linkedList(){}
    ~linkedList(){}

};

#endif


无论如何,我创建了另一个类,其中包括

linkedList<unsigned int> num1


作为私有成员变量。

这是实际的代码:

#include"linkedList.h"

#ifndef L2_H_
#define L2_H_

class Add2Nums{
public:
    Add2Nums(unsigned int, unsigned int);
    ~Add2Nums(){}


private:
    linkedList<unsigned int> num1;
    linkedList<unsigned int> num2;
    Add2Nums();
};


#endif


#include"L2.h"


Add2Nums::Add2Nums(unsigned int a, unsigned int b){
    while(a!=0){
        num1.insertVal(a%10);
        a/=10;
    }

    while(b!=0){
        num2.insertVal(b%10);
        b/=10;
    }

}


当我构建项目时,出现以下问题:

最佳答案

您需要将链接列表实现移到linkedList.h的末尾。

09-25 18:53