|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Oct 2004
Città: Monza (MI)
Messaggi: 46
|
[c++] Copyconstructor di oggetto con puntatori
Sto definendo un grafo composto dalle seguenti classi:
classe Grafo con i seguenti attributi: (ho tralasciato gli attributi semplici come gli indici) Nodo** nodi; // array di puntatori ai vari nodi del grafo Arco** archi; // array di puntatori ai vari archi del grafo La classe Nodo ha i seguenti attributi: Arco** archiVicini; // array di puntatori agli archi che escono dal nodo Ora non so proprio come definire il copyconstructor della classe Grafo e non so se è necessario prima definire un copyConstructor per la classe Nodo e Arco. Grafo(const Grafo &other) { index = other.getIndex(); index2 = other.getIndex2(); capacita1 = other.getCapacita1(); capacita2 = other.getCapacita2(); nodi= new Nodo*[capacita1]; archi= new Arco*[capacita2]; for (int i=0; i<index; i++){ nodi[i] = other.nodi[i]; } for(int i=0; i<index2; i++){ archi[i]=other.archi[i]; } } Il problema è che così i due grafi condividono nodi e archi visto che copio semplicemente il puntatore. Esiste un modo per fare una copia di nodi e archi senza definire un copyconstructor (che non riesco a definire visto che anche queste classi hanno strutture dati complesse) di Nodo e Arco? Purtroppo non posso usare la funzione aggiungiNodo perchè risalire ai parent dei vari nodi per poterli aggiungere sarebbe molto complesso e oneroso. |
![]() |
![]() |
![]() |
#2 |
Member
Iscritto dal: Oct 2004
Città: Monza (MI)
Messaggi: 46
|
Come non detto, ho trovato una soluzione
![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:14.