Questa potrebbe essere una possibile soluzione:

Coda::Coda(const Coda& c){
pointer q = c.coda;
if (q!=0){
coda = new persona;
coda->nome=q->nome;
testa=coda;
q=q->succ;
while(q!=0){
testa->succ = new persona;
testa = testa->succ;
testa->nome = q->nome;
q=q->succ;
}
testa->succ=0;
}
else cout<<"Coda Vuota";
}
dove sono stati definiti:

struct persona{
string nome;
persona* succ;
};
typedef persona* pointer;
Fammi sapere se ci sono problemi.
A presto.