Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    10

    Oggetti e puntatori help

    Salve ragazzi, sto avendo un problema con gli oggetti.
    In pratica ho creato degli oggetti inizializzati con un costruttore con più parametri, in maniera simile a questa:
    codice:
    class A {
    	int a,b,c,;
    public:
    
    
    	A(int A, int B, int C) { a=A;b=B;c=C;};
    /* ..... */ 
    };
    Nel main ho creato un array organizzato in questo modo:

    codice:
    A obj[2]={ A(5,6,8), A(1,9,0)};
    Per poter accedere ad a,b,c senza dover scrivere esplicitamente
    obj.a; obj.b; obj.c; etc. (anche perchè normalmente ho molte più variabili e più oggetti, ho fatto un esempio semplice per far capire la situazione ) ho creato un puntatore all'elemento a e poi l'ho incrementato.
    Ma come posso implementare una funzione che agisce sui valori di a, b e c modificandoli (e modificando l'oggetto originale) sempre servendomi dei puntatori?
    Scusate l'ignoranza

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Non si è capita a fondo la richiesta ... comunque, per accedere ai membri privati devi farlo con metodi pubblici della classe.

    Se mostri il codice che ti ha dato problemi di cui parli, probabilmente si può scendere in maggiori dettagli
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    10
    Hai ragione, mi sono espresso in maniera troppo vaga.
    Vorrei fare innanzitutto una cosa del genere, cioè confrontare gli elementi di un oggetto con quelli di un vettore.
    codice:
    int main()
    
    {
    	A obj[2]={ A(5,6,8), A(1,9,0)};
    int Vettore[3]={4,7,2};
    
    Controllo(Vettore[0], obj[0].a);
    Controllo(Vettore[1], obj[0].b);
    Controllo(Vettore[2], obj[0].c);
    return 0;
    }
    
    void Controllo(int V, int var_oggetto)
    { 
    if(V>var_oggetto) V=var_oggetto;
    cout<<V;
    }
    Insomma vorrei evitare di dover chiamare la funzione tre volte.
    Per questo avevo creato un puntatore a obj[0].a e avevo provato a usare un ciclo for (iterando contemporaneamente sia un contatore per il vettore, e sia il puntatore), ma non ci riesco, a video non stampa niente. Come devo impostare questa cosa?

    PS: per quanto riguarda i membri privati, so di dover creare metodi pubblici essendo il codice che ho postato solamente una bozza per spiegare il mio problema, non mi sono curato di questo aspetto (e infatti poi li ho resi pubblici per fare prima)

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Adesso mi è meno chiaro ...

    Ma perché non usi un vettore nella classe al posto di singole variabili?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente bannato
    Registrato dal
    Apr 2012
    Messaggi
    510
    Dichiara una struct incapsulata dentro la classe in modo da avere gli elementi allineati in memoria, oppure al posto delle 3 variabili d' istanza metti un vettore.

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.