Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: [c++] Help sugli array

  1. #1
    Utente di HTML.it L'avatar di Xadoom
    Registrato dal
    Dec 2002
    Messaggi
    1,491

    [c++] Help sugli array

    Scusate ma non ne esco più....allora ho fatto una classe Complesso, ora sto facendo una classe Matrice in cui devo creare una matrice di Complessi allocandola in modo dinamico....come diavolo si fà???
    Ecco i miei tentativi:
    codice:
    class Matrice{
    
        public: /*Costruttore*/
                Matrice(int,int);
                
       private: int const DIM1,DIM2;
                Complesso matr[][+;
    };
    
    Matrice :: Matrice(int d1,int d2)
             : DIM1(d1),DIM2(d2){    
       matr = new Complesso[DIM1][DIM2];     
    }
    Ma mi dà errore in compilazione
    incompatible types in assignment of `Complesso
    Ho provato anche in altri mille modi, ma non ho mai il risultato desiderato, aiuto!!
    Windows Xp
    [Java]
    [PHP]Notepad++
    [Fortran90-77] elf90 g77
    [C++ /WinAPI] DevC++ VisualC++

  2. #2
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    è tanto che non programmo in c++ il problema secondo me sta qui
    matr = new Complesso[DIM1][DIM2];
    è sbagliata la chiamata al costruttore di Complesso!!!!!!!!!

    non so precisamente come risolvere il problema in java lo risolverei con le classi contenitori tipo Vevtor ma non ricordo se tali classi ci sono anche in c++; in c++ lo potresti risolvere con la malloc() ma non ricordo se esiste tale funzione in c++

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    1,798
    Ciao Xadoom!

    Ne avevamo già discusso, lo so.
    Anch'io credo che il problema sia nella chiamata
    del costruttore (di default ?) di Complesso.
    Ma fintanto che il codice non si vede,
    diventa difficile aiutarti.

    Slack? Smack!

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    1,798
    Ancora una cosa.

    const int DIM1, DIM2;
    // dichiari due interi costanti ma non li inizializzi

    DIM1(d1), DIM2(d2)
    // che significano?

    Slack? Smack!

  5. #5
    Utente di HTML.it L'avatar di Xadoom
    Registrato dal
    Dec 2002
    Messaggi
    1,491
    Originariamente inviato da Sergio Pedone
    Ancora una cosa.

    const int DIM1, DIM2;
    // dichiari due interi costanti ma non li inizializzi

    DIM1(d1), DIM2(d2)
    // che significano?

    Inizializzo le costanti nella chiamata al costruttore della classe.
    Per il costruttore di default, non capisco, cosa deve avere di particolare? io l'ho scritto, ma normalmente, inizializza le variabili private e basta.....più tardi lo posto.
    Altre idee?
    Windows Xp
    [Java]
    [PHP]Notepad++
    [Fortran90-77] elf90 g77
    [C++ /WinAPI] DevC++ VisualC++

  6. #6
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    Prova così

    [code]
    class Matrice{

    public: /*Costruttore*/
    Matrice(int,int);

    private: int const DIM1,DIM2;
    Complesso matr[][];
    };

    Matrice :: Matrice(int d1,int d2)
    {
    DIM1=d1;
    DIM2=d2;
    matr = new Complesso[DIM1][DIM2];
    int i,j;
    for(i=0;i<DIM1;i++)
    {
    for(j=0;j<DIM2;j++)
    {
    matr[i][j]=new Complesso();
    }
    }
    }
    [\code]

    In java una cosa simile funziona

  7. #7
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    Ho avuto problemi con Vb :gren:

    codice:
    class Matrice{ 
    
        public: /*Costruttore*/ 
        Matrice(int,int); 
    
        private: int const DIM1,DIM2; 
        Complesso matr[][]; 
    }; 
    
    Matrice :: Matrice(int d1,int d2) 
    { 
        DIM1=d1; 
        DIM2=d2; 
        matr = new Complesso[DIM1][DIM2]; 
        int i,j; 
        for(i=0;i<DIM1;i++) 
        { 
            for(j=0;j<DIM2;j++) 
            { 
                matr[i][j]=new Complesso(); 
            } 
        } 
    }

  8. #8
    Utente di HTML.it L'avatar di Xadoom
    Registrato dal
    Dec 2002
    Messaggi
    1,491
    Ma è proprio quello che faccio, lo so che in Java si fa così, ma in c++ non mi funge....
    Windows Xp
    [Java]
    [PHP]Notepad++
    [Fortran90-77] elf90 g77
    [C++ /WinAPI] DevC++ VisualC++

  9. #9
    Utente di HTML.it L'avatar di Xadoom
    Registrato dal
    Dec 2002
    Messaggi
    1,491
    Ecco come ho implementato la classe Complesso, per favore Help !! Altrimenti credo che lascerò questo "progetto"....
    codice:
    class Complesso{
    /*Implementa un numero complesso del tipo a+jb */
                 
        public:  /*Costruttori*/
                 Complesso();
                 Complesso(double);
                 Complesso(double,double);
                 /*Vari metodi*/
                 
        private: double a;  //Parte reale
                 double b;  //Parte immaginaria
                 
    };
    /*Costruttori*/
    Complesso :: Complesso(double x, double y){a = x; b = y;}
    Complesso :: Complesso(double a){Complesso(a,0);}
    Complesso :: Complesso(){Complesso(0,0);}
    Windows Xp
    [Java]
    [PHP]Notepad++
    [Fortran90-77] elf90 g77
    [C++ /WinAPI] DevC++ VisualC++

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    1,798
    Utilizzando i puntatori, riesco a compilarlo.
    $ g++ -c test.cpp -o test.o
    codice:
    class Complesso{
    /*Implementa un numero complesso del tipo a+jb */
                 
        public:  /*Costruttori*/
                 Complesso();
                 Complesso(double);
                 Complesso(double,double);
                 /*Vari metodi*/
                 
        private: double a;  //Parte reale
                 double b;  //Parte immaginaria
                 
    };
    /*Costruttori*/
    Complesso :: Complesso(double x, double y){a = x; b = y;}
    Complesso :: Complesso(double a){Complesso(a,0);}
    Complesso :: Complesso(){Complesso(0,0);}
    
    class Matrice{
    
        public: /*Costruttore*/
                Matrice(int,int);
                
       private: const int DIM1,DIM2;
                Complesso** matr;//[][];
    };
    
    Matrice :: Matrice(int d1,int d2) : DIM1(d1),DIM2(d2) {    
    	matr = new Complesso*[DIM1];
    	for (int i = 0; i < DIM1; i++) {
    		matr[i] = new Complesso[DIM2];
    	}
    }
    Slack? Smack!

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 © 2025 vBulletin Solutions, Inc. All rights reserved.