//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; }
This should work, shouldn't it? When I define list.h's and list.cpp's content above the main function, everything works fine. However, this gives me some errors :
main.cpp:(.text+0x12): undefined reference to
List<int>::List()'
List::size() const'
main.cpp:(.text+0x1e): undefined reference to
main.cpp:(.text+0x4f): undefined reference toList<int>::~List()'
List::~List()'
main.cpp:(.text+0x64): undefined reference to
when I change List<int> a;
in the main function to List<int> a();
the only Error I get is this :
main.cpp:10:12: error: request for member ‘size’ in ‘a’, which is of non-class type ‘List()’
Help me, what'S wrong?