C++ message d'Erreur redéfinition des fonctions

Je suis l'aide de deux piles de mettre en œuvre une file d'attente de la classe. Mon fichier d'en-tête ressemble:

#ifndef _MyQueue_h
#define _MyQueue_h
using namespace std;

template <typename T>
class MyQueue {

public:
    MyQueue();
    ~MyQueue();
    void enqueue(T element);
    T peek();
    void dequeue();
    int size();
    bool empty();

private:
    int count;
    stack<T> stk1;
    stack<T> stk2;
};
# include "MyQueue.cpp"
# endif

Et mon rpc (mise en œuvre) fichier ressemble à ceci:

#include <stack>
#include "MyQueue.h"
using namespace std;

template <typename T>
MyQueue<T>::MyQueue()
{
    count = 0;
}

template <typename T>
MyQueue<T>::~ MyQueue()
{
}

template <typename T>
void MyQueue<T>::enqueue(T element)
{
    stk1.push(element);
    count ++;
}

(d'autres fonctions omis).

Cependant, l'utilisation de Xcode 4.5, il n'arrête pas de dire que mes fonctions (MyQueue, ~MyQueue, à la file, peek, etc.) sont redéfinies. Quelqu'un peut-il m'aider à clarifier où je l'ai redéfini?

Merci

Vous ne devriez jamais include un fichier source (j'.e les fichiers se terminant par .cpp, .cc, ou .C). Aussi, assurez-vous de include le fichier d'en-tête dans lequel votre stack est défini, à moins d'utiliser la STL de la pile.

OriginalL'auteur Hayden Coyle | 2013-11-13