Ciao a tutti,
ho un dubbio su come affrontare un'esercizio, è da un po' che ci provo, ma niente da fare. Forse ho interpretato male il professore... non so'.
Nella prima parte chiedeva di creare una rubrica utilizzando una template class con le funzioni di add, remove e print. Fin qua funziona tutto bene.

L'esercizio successivo, dice di implementare una classe Persona e applicarla con la template class appena creata (che ho chiamato ListaConcatenata.h).
Quindi ho creato un nuovo file .cpp e .h che si chiama persona, poi ho cercato di usarla nel file ListaConcatenata.h, ma mi da errore.

Metto anche una parte del codice del file ListaConcatenata.h:
codice:
#include <iostream>
#include <stdlib.h>
#include "persona.h"    //QUESTA è LA PARTE CHE HO AGGIUNTO
using namespace std;

template <class T>
class LinkedList
{
private:
    string nome;
    string cognome;
    string telefono;

    Persona persona;   //QUESTA è LA PARTE CHE HO AGGIUNTO

   struct ListNode
    {
      T val1;
      T val2;
      T val3;
      ListNode * next;
      ListNode(T value1, T value2, T value3, ListNode * next1 = NULL)
      {
         val1 = value1;
         val2 = value2;
         val3 = value3;
         next = next1;
      }
    };


public:
   LinkedList() { head = NULL;  }   
   ~LinkedList();      
              
   void aggiungi();
   void elimina();
   void stampa();
};
e questa è la mia classe persona.h:

codice:
class Persona
{
    public:
        char nome[30];
        char cognome[30];
        char tel[30];


        void add_nome( );
        void add_cognome( );
        void add_telefono( );
};

l'errore è
||=== Build: Debug in Rubrica (compiler: GNU GCC Compiler) ===|
include\persona.h|1|error: redefinition of 'class Persona'|
include\persona.h|1|error: previous definition of 'class Persona'|
||=== Build failed: 2 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|

Cosa sto sbagliando? è sbagliato l'approccio?
Grazie.