View Single Post
Old 19-05-2007, 17:36   #1
Manugal
Senior Member
 
L'Avatar di Manugal
 
Iscritto dal: Jan 2001
Città: Villanova di Guidonia (RM)
Messaggi: 1079
[C++] Passaggio di un vector<int>

Ciao.

Ho dichiarato in un file, questa classe:

Codice:
class Dns{
      private:
         vector<int> proxy;      
         vector<Provider> provider;   //un'array di Provider (Provider è una struct definita in un altro file)
         map<string, vector<int> > mapper;    
      public:
         Dns();   
         Dns(vector<int> , vector<Provider>); 
         void Associations(int, int); 
         void stampa_mapper(int []);
};
Il corpo del costruttore con argomenti è:

Codice:
Dns::Dns(vector<int> newp, vector<Provider> newprov){
   proxy=newp;
   provider=newprov;
}
Ora se dal main istanzio un oggetto di tipo Dns con tale costruttore, succede che provider viene correttamente copiato da newprov mentre proxy no. Infatti se vado a fare un debugging con gdb mi accorgo che provider contiene correttamente tutti i campi che ho inizializzato nel main, mentre proxy (nonostante sia correttamente inizializzato con tutti i valori nel main) non ha nessun campo inizializzato (anzi l'indirizzo di memoria è proprio NULL). Non capisco perché non riesce a passarglielo correttamente. Avete idee? Grazie.
Manugal è offline   Rispondi citando il messaggio o parte di esso