ciao a tutti. ho una classe persona in cui c'è un elemento indirizzo, che è una struttura a parte.

la struct indirizzo è
codice:
#include <iostream>
#include <cstring>
using namespace std;

struct indirizzo {
	char *via;
	char *paese;
	int cap;
	indirizzo(char*vi,char*paes,int ca);
	indirizzo(const indirizzo &obj);
	~indirizzo();
};

indirizzo::indirizzo(char*vi,char*paes,int ca) {
	via=new char[strlen(vi)+1];
	if(!via)
		exit(1);
	strcpy(via,vi);
	paese=new char[strlen(paes)+1];
	if(!paese)
		exit(1);
	strcpy(paese,paes);
	cap=ca;
}

indirizzo::indirizzo(const indirizzo &obj) {
	via=new char[strlen(obj.via)+1];
	if(!via)
		exit(1);
	strcpy(via,obj.via);
	paese=new char[strlen(obj.paese)+1];
	if(!paese)
		exit(1);
	strcpy(paese,obj.paese);
	cap=obj.cap;
}

indirizzo::~indirizzo() {
	if(via)
		delete [] via;
	if(paese)
		delete [] paese;
}
mentre la class persona è
codice:
class persona {
	char *nome;
	char *cognome;
	indirizzo i;
public:
	persona(char*nom,char*cognom,char*vi,char*paes,int ca);
	persona(const persona &obj);
	~persona();
};

persona::persona(char*nom,char*cognom,char*vi,char*paes,int ca) {
	nome=new char[strlen(nom)+1];
	if(!nome)
		exit(1);
	strcpy(nome,nom);
	cognome=new char[strlen(cognom)+1];
	if(!cognome)
		exit(1);
	strcpy(cognome,cognom);
}

persona::persona(const persona &obj) {
	nome=new char[strlen(obj.nome)+1];
	if(!nome)
		exit(1);
	strcpy(nome,obj.nome);
	cognome=new char[strlen(obj.cognome)+1];
	if(!cognome)
		exit(1);
	strcpy(cognome,obj.cognome);
	
	i.via=new char[strlen(obj.i.via)+1];
	if(!i.via)
		exit(1);
	strcpy(i.via,obj.i.via);
	i.paese=new char[strlen(obj.i.paese)+1];
	if(!i.paese)
		exit(1);
	strcpy(i.paese,obj.i.paese);
	i.cap=obj.i.cap;
}

persona::~persona() {
	if(nome)
		delete [] nome;
	if(cognome)
		delete [] cognome;
}
mi chiedo: come fare passare i parametri al costruttore di indirizzo?
inoltre, nel costruttore di copia di persona faccio bene ad accedere ai dati di indirizzo direttamente con i.via, o è necessario sperificare nell'intestazione qualcosa tipo :i(via,paese,cap)?
e nel distruttore di persona come faccio partire il distruttore di indirizzo?

grazie..ciao