Mail Archives: djgpp/1997/05/15/03:50:55
On 13 May 1997, Dennis Janssen wrote:
> Hi,
>
> I'm new to C++ and now I'm trying to learn how to use templates.
>
> I've written the following three files.
>
> [CSTACK.H]
> #ifndef CSTACK_H
> #define CSTACK_H
>
> template <class stackType>
> class cStack {
> public:
> cStack();
> int push(stackType element);
> };
> #endif CSTACK_H
>
> [CSTACK.CC]
> #include <iostream.h>
> #include "cstack.h"
>
> template<class stackType>
> cStack<stackType>::cStack()
> {
> cout << "Constructed" << endl;
> };
>
> template <class stackType>
> int cStack<stackType>::push(stackType element)
> {
> cout << "Pushing..." << endl;
> return 0;
> };
template class cStack<int>;
template class cStack<float>;
[ .. all types u need to istantiate in the template .. ]
>
> [TESTSTCK.CC]
> #include "cstack.h"
>
> int main ()
> {
> cStack<int> int_stack;
>
> int_stack.push(12);
>
> return 0;
> }
>
> When I try to compile it using DJGPP 2.01 (based on gcc 2.7.0.1) I think I
> get the following two errors:
>
> undefined reference to cStack<int>::cStack(void)
> undefined reference to cStack<int>::push(int)
>
> How do I fix this? I've read something in info about GCC neither supporting
> the Borland model nor the C/C++ frontend (or something) but I don't
> understand how to fix it.
>
> Dennis!
>
>
- Raw text -