Plik HPP
#pragma once
template <typename T>
class TElem
{
T Value;
char ItemType;
TElem *Next;
};
template <typename T>
class MyStack
{
private:
TElem<T> *Head, *Tail;
public:
TElem<T> *Pop();
void Push(T Val);
void Into(T Val);
bool IsEmpty();
TElem<T> *Top();
MyStack();
~MyStack();
};
Plik CPP
#include "stdafx.h"
#include <cstdlib>
#include "MyStack.hpp"
template <typename T>
MyStack<T>::MyStack()
{
Head = Tail = NULL;
}
template <typename T>
MyStack<T>::~MyStack()
{
while(Head != NULL)
{
TElem *El = Head;
Head = Head->Next;
free(El);
}
}
template <typename T>
bool MyStack<T>::IsEmpty()
{
return Head != NULL;
}
template <typename T>
void MyStack<T>::Push(T A)
{
TElem *El = new TElem;
El->a = A;
El->Next = Head;
Head = El;
if(Tail == NULL)
Tail = Head;
}
template <typename T>
void MyStack<T>::Into(T A)
{
TElem *El = new TElem;
El->a = A;
El->Next = NULL;
if(Head != NULL)
Tail->Next = El;
else
Head = El;
Tail = El;
}
template <typename T>
TElem<T> *MyStack<T>::Pop()
{
TElem *El = Head;
Head = Head->Next;
return El;
}
template <typename T>
TElem<T> *MyStack<T>::Top()
{
return Head;
}
// asdf.cpp : Defines the entry point for the console application.
//
Plik Main
#include "stdafx.h"
#include "MyStack.hpp"
#include <iostream>
#include <cstdlib>
int _tmain(int argc, _TCHAR* argv[])
{
MyStack<char> *st = new MyStack<char>();
for(int i=0;i<5;++i)
{
}
getchar();
return 0;
}
Błąd: Error 1 error LNK2019: unresolved external symbol "public: __thiscall MyStack<char>::MyStack<char>(void)" (??0?$MyStack@D@@QAE@XZ) referenced in function _wmain