Code:
//stdafx.h
#pragma once
#define WIN32_LEAN_AND_MEAN	// Exclude rarely-used stuff from Windows headers
#include <stdio.h>
#include <tchar.h>
#include <iostream.h>
#include <stdlib.h>
#include <string.h>
/************************************/

//Queue.h
#ifndef GUARD_CQueue_H
#define GUARD_CQueue_H

template <class T>
class CQueue
{
public:
		//exception classes
		class CqueueFull{};
		class CqueueEmpty {};
private:
		typedef struct node_s 
		{
			T item;
			node_s * next;
			node_s (T x) { item = x; next = NULL;}
		}LList;

		LList *head, *tail;
		int max_size;
		int current_size;

public:
		CQueue(int iSize);
		inline bool empty() const { return head == NULL; }
		void In(T x);
		T Out();
};

/******************************/
//Queue.cpp
#include "stdafx.h"
#include "CQueue.h"

template<class T>
CQueue<T>::CQueue(int iSize) 
{ 
	max_size = iSize;
	current_size = 0;
	head = NULL;
}

template<class T>
T CQueue<T>::Out()
{
	if(!empty())
	{
		T v = head->item; 
		LList *t = head->next;
		delete head;
		head = t;
		return v;
	}else
	{
		throw CqueueEmpty();
	}
}

template <class T> 
void CQueue<T>::In(T x) 
{	
		if( current_size < max_size)
		{
			current_size ++;
			LList *t = tail;
			tail = new node_s(x);
			if(head == NULL) 
			{
				head = tail;
			}else
			{
				t->next = tail;
			}
		}else
		{
			throw CqueueFull();
		}
}
/*******************************/
//Main.cpp
#include "stdafx.h"
#include "CQueue.h"

int main()
{
	try
	{

		CQueue<double> Q(16);
		Q.In(12.3);
		Q.In(45.2);
		Q.In(67.69);
		Q.In(8.98);


		cout << "Out: " << Q.Out() << endl;
		cout << "OUt: " << Q.Out() << endl;
		cout << "OUt: " << Q.Out() << endl;
		cout << "OUt: " << Q.Out() << endl;
	}
	catch(CQueue<double>::CqueueFull)
	{
		cout << "Queue is full." << endl;
	}
	catch(CQueue<double>::CqueueEmpty)
	{
		cout << "Queue is Empty." << endl;
	}

	return 0;
}
What is the error? I get 3 'unresolved external' errors!