Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    48

    [C++] Creare Vector contenente elementi Classe

    Salve a tutti,
    Mi servirebbe creare un Vector che contenga tanti elementi della stessa classe, a loro volta composti dei loro membri.

    Credo sia una cosa fattibilissima, purtroppo non so come xD

    ESEMPIO
    codice:
    //classe.h
    
    #ifndef __classe_h
    #define __classe_h
    
    class Classe
    {
        public:
           int membro A;
           int membro B;
    };
    
    #endif // 
    
    
    
    //main.cpp
    
    #include <iostream>
    #include "classe.h"
    
    usign namespace std;
    
    int main()
    {
          vector<classe> V;  <--------- ?????
    }
    Nel caso questo porzione di codice (inventato) fosse esatto, come si stampa poi un elemento appartenente al vector??

    GRAZIE!!!

  2. #2
    Gli elementi di un vector sono accessibili come un normale vettore, quindi tramite parentesi [], oppure tramite iteratori
    01010011 01100001 01101101 01110101 01100101 01101100 01100101 01011111 00110111 00110000
    All errors are undocumented features waiting to be discovered.

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    48
    Quindi per l'esempio sopra dovrebbe funzione cosi:

    codice:
    cout<<"Elemento "<<i<<"= "<<V[i].membro A<<endl;
    ????

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ovviamente nel nome non ci devono essere spazi

    membroA
    membroB
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    48
    Naturalmente...

    Mentre per l'inserimento dell'elemento classe all'interno del vector è giusta questa procedura:

    codice:
        for(int i=0; i<Size; i++)
        {
            Classe *c = new Classe();
            V.push_back(*c);
        }
    ?

  6. #6
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    No. Non siamo in Java con suo garbage collector. Qui i memory leaks si pagano.
    Corretto è:
    codice:
    for(int i=0; i<Size; i++) {
         V.push_back(Classe());
    }
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    48
    Grazie dell'aiuto che mi state fornendo.
    Ho superato tutti gli "inceppi" in cui ero cascato e finalmente ho capito per bene come funziona la creazione di un vector contenente degli elementi "classe".
    Adesso purtroppo mi trovo nuovamente bloccato, ma con qualcosa che nn ha nulla a che fare con i vector.

    Praticamente mi ritrovo con una classe che ha come membro un'altra classe (classe derivata?)... il problema è che uno degli membri di qst classe viene inizializzato tramite la funzione randomize.
    Non ho mai avuto problemi ad usarla con il C ma adesso sto notando che quando creo la prima classe (membroA della classe principale) no problem, successivamente quando creo l'altra classe (membroB della classe principale) i numeri che crea sono IDENTICI a quelli della classe precedente. Preavviso che gia so il concetto di srand(tim(NULL)) e che le due classi vengono create in tempi diversi

    QUalcuno saprebbe dirmi a cosa è dovuto???

  8. #8
    Nuovo problema, nuovo thread, è meglio se apri una nuova discussione ^_^
    01010011 01100001 01101101 01110101 01100101 01101100 01100101 01011111 00110111 00110000
    All errors are undocumented features waiting to be discovered.

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    48
    Ok grazie

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.