Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente bannato
    Registrato dal
    Jun 2003
    Messaggi
    3,657

    [C++] - Allocazione dinamica e oop

    codice:
    class a
    {
      private: 
               float *ciao;
      public:
             a(int);
    }
    
    a::a (int arg)
    {
      a = new float [arg];
    }
    perché, secondo voi, nn va?

    grazie anticipatamente?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    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.

  3. #3
    Utente bannato
    Registrato dal
    Jun 2003
    Messaggi
    3,657
    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.
    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...

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    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 =

  5. #5
    Utente bannato
    Registrato dal
    Jun 2003
    Messaggi
    3,657
    Vabbè, posto la classe com'è in realtà

    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];
    }
    mi da errore nell'istruzione del costruttore.

  6. #6
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    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

  7. #7
    Utente bannato
    Registrato dal
    Jun 2003
    Messaggi
    3,657
    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 da errore qui: ListaAdiacenza = new (float *)[n];

    mi dice: Parse error before ')'

  8. #8
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    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

  9. #9
    Utente bannato
    Registrato dal
    Jun 2003
    Messaggi
    3,657
    Originariamente inviato da anx721
    che compilatore usi? il mingw/gcc lo compila...magari provaa togliere le parentesi tonde attorno a float *
    a me nn lo compila...devcpp con gcc...le ho tolte ma niente

    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;
        }
    }

  10. #10
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    che versione di devcpp usi? sei sicuro di avere il mingw?

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.