The google references were a bit varied and ambiguos and my textbook ironically doesn't cover templates ._.

if I were to make

template <typename typ> 
	class stk {
				struct STK {
					typ dat;
					STK *lnk;
				}; *chn;
				int ctr;			

do I have to do anything special for my implementation file or would I go about declaring each function like normal? Like


as opposed to

Yes, and if your compiler does not support the keyword export,
then it has to be in the same file. (note not tested)
For example :

#ifndef PAIR_H_
#define PAIR_H
template<typename Type, template Type2>
class Pair
   Type first;
   Type second;
   Pair() : first(0), second(0) { }
   Pair(Type a, Type2 b);
   void prntAll();

template<typename Type, typename Type2)
Pair<Type, Type2> :: Pair(Type a Type2 b) : first(a), second(b) { }

template<typename Type, typename Type2)
Pair<Type, Type2> :: prntAll() { std::cout<<first<<" , "<<second<<"\n";

This question has already been answered. Start a new discussion instead.