C++ erreur: déclaration d'un Membre non trouvé

Je suis une c++ débutant. Aujourd'hui, j'ai un problème:
dans le fichier d'en-tête, je définir une classe:

template<class T> class Ptr_to_const {
private:
    Array_Data<T>* ap;
    unsigned sub;

public:
        ...

    Ptr_to_const<T> & operator=(const Ptr_to_const<T> & p);

};

et dans le fichier source, je programme:

template<class T> Ptr_to_const<T>& Ptr_to_const<T>::operator=(
        const Ptr_to_const<T> & p) {
         ...
    return *this;
}

lors de la compilation, le compilateur disons toujours: "déclaration d'un Membre ne trouve pas'.
pourquoi?

- Je utiliser eclipse CDT+Cygwin GCC

merci beaucoup!

Autant que je sache, vous ne devez pas mettre en œuvre un modèle de classe dans un fichier source. Définir la définition de la fonction dans l'en-tête.

OriginalL'auteur wenfeng | 2012-01-13