C++ définition précédente d'erreur

Donc, grâce à ce site, j'ai trouvé la réponse à mon problème précédent. Je vais ajouter une fonction à une classe dans un GNU automake projet qui utilise un pointeur vers une doc objet. Les dépendances ont été inclus dans le fichier Makefile.suis fichier à inclure doc.h et plsa.h dans l'ordre respectif. Cependant, lorsque j'ai compilé, je voudrais obtenir un doc has not been declared erreur. Ensuite, j'ai essayé d'ajouter l'instruction #include ici, ce qui donne une previous redefinition of 'class doc' erreur.

J'ai appris que je dois déclarer doc à l'aide de la class doc; ligne en commentaire ci-dessous; cependant, je pensais que c'était seulement nécessaire si j'étais la déclaration d'une fonction qui passe l'objet en valeur. Quelqu'un peut m'expliquer pourquoi le #include est incorrecte dans ce cas?

#include "doc.h"
//class doc;
class plsa {
    //...
    int infer(doc *trset, int maxiter, double noiseH);
}

OriginalL'auteur Nick Ruiz | 2011-10-27