perché, secondo voi, nn va?codice:class a { private: float *ciao; public: a(int); } a::a (int arg) { a = new float [arg]; }
grazie anticipatamente?
perché, secondo voi, nn va?codice:class a { private: float *ciao; public: a(int); } a::a (int arg) { a = new float [arg]; }
grazie anticipatamente?
Prima di dire cosa non va, dovresti dire, in dettaglio, cosa volevi fare (riga per riga) ...
Quello che mi lascia perplesso e' l'uso di a come puntatore all'area allocata (al suo posto dovrebbe essere usato il membro privato ciao, che e' effettivamente un puntatore a float ...).
E la dimenticanza del punto e virgola alla fine della definizione della classe.
lascia xdere il punto e virgola visto che lo scritto solo x mostrarti l'esempio di ciò che volevo fare...volevo creare un vettore (anzi una matrice) con il parametro intero passato nel costruttore...Originariamente inviato da oregon
Prima di dire cosa non va, dovresti dire, in dettaglio, cosa volevi fare (riga per riga) ...
Quello che mi lascia perplesso e' l'uso di a come puntatore all'area allocata (al suo posto dovrebbe essere usato il membro privato ciao, che e' effettivamente un puntatore a float ...).
E la dimenticanza del punto e virgola alla fine della definizione della classe.
Non so se hai notato, ma ho parlato di "dimenticanza" per il ; ...
Per il resto ti ho detto che
a =
non ha senso, ma deve essere
ciao =
Vabbè, posto la classe com'è in realtà
mi da errore nell'istruzione del costruttore.codice:class Grafo { private: int n_nodi; float *ListaAdiacenza; bool pesato,orientato; public: Grafo(int,bool,bool); bool AddArco(int,int,float); void PrintGrafo(); }; Grafo::Grafo(int n,bool p,bool o) : pesato(p),orientato(o) { ListaAdiacenza = new float[n][n]; }
Prova cosi:
codice:class Grafo { private: int n_nodi; float **ListaAdiacenza; bool pesato,orientato; public: Grafo(int,bool,bool); bool AddArco(int,int,float); void PrintGrafo(); }; Grafo::Grafo(int n,bool p,bool o) : pesato(p),orientato(o) { ListaAdiacenza = new (float *)[n]; for(int i = 0; i < n; i++) ListaAdiacenza[i] = new float[n]; }
Sun Certified Java Programmer
EUCIP Core Level Certified
European Certification of Informatics Professionals
mi da errore qui: ListaAdiacenza = new (float *)[n];Originariamente inviato da anx721
Prova cosi:
codice:class Grafo { private: int n_nodi; float **ListaAdiacenza; bool pesato,orientato; public: Grafo(int,bool,bool); bool AddArco(int,int,float); void PrintGrafo(); }; Grafo::Grafo(int n,bool p,bool o) : pesato(p),orientato(o) { ListaAdiacenza = new (float *)[n]; for(int i = 0; i < n; i++) ListaAdiacenza[i] = new float[n]; }
mi dice: Parse error before ')'
che compilatore usi? il mingw/gcc lo compila...magari provaa togliere le parentesi tonde attorno a float *
Sun Certified Java Programmer
EUCIP Core Level Certified
European Certification of Informatics Professionals
a me nn lo compila...devcpp con gcc...le ho tolte ma nienteOriginariamente inviato da anx721
che compilatore usi? il mingw/gcc lo compila...magari provaa togliere le parentesi tonde attorno a float *
codice:Grafo::Grafo(int n,bool p,bool o) : n_nodi(n),pesato(p),orientato(o) { ListaAdiacenza = new (*float) [n]; for (int i=0;i<n;i++) for (int j=0;j<n;j++) { ListaAdiacenza[i] = new float [n]; ListaAdiacenza[i][j] = INFINITO; } }
che versione di devcpp usi? sei sicuro di avere il mingw?
Sun Certified Java Programmer
EUCIP Core Level Certified
European Certification of Informatics Professionals