由于未定义的引用错误,我无法编译此代码。 这些课程更复杂,但我把剩下的课程拿出来了,但仍然没有编译。
我认为问题在于尝试基于模板创建一个类,使用该模板的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;}