//includes, using etc.
int main()
{
List<int> a;
cout << a.size() << endl;
return 0;
}
//list.h
template <class T>
class List{
int items;
public:
List();
~List();
int size() const;
};
//list.cpp
#include "list.h"
template<class T>
List<T>::List() :
items(0)
{}
template<class T>
List<T>::~List()
{}
template<class T>
int List<T>::size() const
{ return items; }
这应该有效,不是吗?当我在 main 函数上方定义 list.h 和 list.cpp 的内容时,一切正常。但是,这给了我一些错误:
main.cpp:(.text+0x12): 未定义引用List::size() const' main.cpp:(.text+0x4f): 未定义引用List::~List()'
List<int>::List()'
main.cpp:(.text+0x1e): undefined reference toList<int>::~List()'
main.cpp:(.text+0x64): undefined reference to
当我List<int> a;
将主要功能更改List<int> a();
为唯一的错误时,我得到的是:
main.cpp:10:12: 错误:请求'a'中的成员'size',它是非类类型'List()'</p>
帮帮我,怎么了?