使用C ++中的继承和模板进行未定义的引用

时间:2015-04-23 03:46:51

标签: c++ templates inheritance abstract-data-type

由于未定义的引用错误,我无法编译此代码。 这些课程更复杂,但我把剩下的课程拿出来了,但仍然没有编译。

我认为问题在于尝试基于模板创建一个类,使用该模板的new和我的实现类...我真的很感激任何帮助,因为我已经失去了两个小时这个。

这是代码。

/*   the main.cpp file */

    int main() {

       // this is the line that triggers the error: "undefined reference to `ListaImp<int>::ListaImp()"

       TADLista<int> * list = new ListaImp<int>;  // this is the one
       list->Vacia();
       return 0;
    }




/* TEMPLATE CLASS */

#ifndef TADLISTA_H_
#define TADLISTA_H_

template<class T>
class TADLista {
  public:
    virtual ~TADLista(){}
    virtual void Vacia()=0;
};

 #endif /* TADLISTA_H_ */



 /*  CLASS LISTAIMP  */

 #ifndef LISTAIMP_H_
 #define LISTAIMP_H_

 #include "TADLista.h"

 template<class T>
 class ListaImp: public TADLista<T> {

   public:
     ListaImp();
    ~ListaImp();
     void Vacia();
 };
#endif /* LISTAIMP_H_ */


/* THE CPP FILE */

#include "ListaImp.h"

#define NULL 0

template<class T>
ListaImp<T>::ListaImp() {}

template<class T>
ListaImp<T>::~ListaImp() {}

template <class T>
void ListaImp<T>::Vacia(){return true;}

0 个答案:

没有答案