'[Nom de la classe]' n'est pas le nom d'un type en C++

Je suis de la programmation d'un graphe à l'aide d'une liste de listes. Pour cela, j'ai deux classes, et chaque un de ces classes dispose d'un pointeur à un autre objet de la même classe et un pointeur vers l'objet de la deuxième classe. Voici le code:

Fichier V. h:

#ifndef VERTICEPUNT_H
#define VERTICEPUNT_H

#include "A.cpp"

typedef char E;

 class V
{
    public:
    E etiqueta;
    V* siguiente;
    A* primera;  //<- Error: 'A' does not name a type

    V();
    ~V();
};

#endif //VERTICEPUNT_H

Fichier V.cpp:

#include "V.h"

 V::V()
{
     etiqueta = ' ';
     siguiente = 0;
     primera = 0;  //<- Error: 'primera' was not declared in this scope
}

 V::~V()
{
    delete primera;
    delete siguiente;
}

Fichier A. h:

#ifndef ARISTAPUNT_H
#define ARISTAPUNT_H

#include "V.cpp"

typedef int P;

 class A
{
    public:
        P peso;
        V* vertice;
        A* siguiente;

         A();
        ~A();
};

 #endif //ARISTAPUNT_H

A.cpp:

#include "A.h"

 A::A()  //<- Error: 'A' does not name a type
{
     peso = 0;
     siguiente = 0;
     vertice = 0;
}

 A::~A()  //<- Error: 'A' does not name a type
{
    delete siguiente;
}

Comment pourrais-je résoudre ce problème?

OriginalL'auteur J-orge Mata Villalobos | 2013-06-27