attendu unqualified-id de l'erreur sur g++

Hé les gars, j'ai besoin d'aide pour faire ce programme pour la classe. Nous travaillons avec g++ (linux? grâce à ses mastic sur un serveur) j'ai beaucoup de problème avec cette liste liée. Le courant de l'erreur qu'il me donne de l'est
la file d'attente.rpc:2: erreur: attendu unqualified-id avant âusingâ
Demandais si quelqu'un pouvait m'aider à comprendre. Un peu de recherche montre que le problème semble être dans le #define quelque part?? l'erreur indique qu'il est dans l' .fichier cpp, mais je pense qu'il est dans le .h fichier. Aussi, si vous pouviez me donner toute la programmation de les conseiller sur tout ce qui semble éteint, mal ou si il y a une meilleure façon de le faire.

la file d'attente.h fichier ci-dessous

#ifndef QUEUE_H
#define QUEUE_H

template <class Object>
class Queue
{
 public:
     Queue();
     Queue(const Queue& a_queue);
     Queue& operator =(const Queue& rhs);
     bool enqueue(const Object& d);
     bool dequeue(const Object& d);
     bool isEmpty() const;
     ~Queue();

private:
    struct ListNode
    {
        Object obj;
        ListNode *next;

    };
    ListNode *head;
}

#endif //Queue_H
#include "queue.cpp"  //include queue.cpp with file

l'queue.cpp fichier ici.

#include <iostream>
using namespace std;
template <class Object>
Queue<Object>::Queue()
{
head = NULL;
}
template <class Object>
Queue<Object>::Queue(const Queue<Object>& a_queue)
{
head=NULL;
*this=a_queue;
}
template <class Object>
Queue<Object>& Queue<Object>::operator =(const Queue<Object> &rhs)
{
ListNode *nodePtr;
nodePtr = rhs.head;
if(this != rhs){
this.head = NULL;
while(nodePtr != NULL){
this.enqueue(nodePtr->obj);
nodePtr = nodePtr->next;
}
}
}
template <class Object>
bool Queue<Object>::enqueue (const Object& d) //Enqueue
{
ListNode *newNode;
ListNode *nodePtr;
ListNode *previousNode;
previousNode = NULL;
nodePtr = NULL;
newNode = new ListNode;
newNode->obj = d;
newNode->next = NULL;
if(isEmpty){
head = newNode;
return true;
}
else{
nodePtr = head;
previousNode = NULL;
while(nodePtr != NULL){
previousNode = nodePtr;
nodePtr=nodePtr->next;
}
if(previousNode->next == NULL){
previousNode->next = newNode;
return true;
}
else
return false;
}
}
template <class Object>
bool Queue<Object>::dequeue (const Object& d)  //Dequeue
{
ListNode *nodePtr;
if(!head)
return false;
else{
if(head->next != NULL){
nodePtr = head;
d=nodePtr->obj;
head = head->next;
delete nodePtr;
}else
delete head;
return true;
}
}
template <class Object>
bool Queue<Object>::isEmpty() const  //Check if Empty
{
if(!head)
return true;
else
return false;
}
template <class Object>
Queue<Object>::~Queue()   //Destructor
{
Object temp;
while (head != NULL)
dequeue (temp);
}
Après avoir regardé le code pour un peu plus, est-ce parce que j'ai inclus "using namespace std;" dans mon .h et .rpc??

OriginalL'auteur kingcong3 | 2011-04-07