Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    98

    C/C++ - Una serie di dubbi...

    Purtroppo sto incontrando una serie di dubbi molto importanti e credo che solo voi possiate aiutarmi.
    1)Se, ad esempio, ho una classe che ha tra i suoi parametri un puntatore ad interi, questo puntatore lo posso "agganciare" solo ad oggetti della classe?! Mi spiego meglio con un esempio:
    codice:
    classe prova
    {
         private:
             int a_;
             int* p_;
         public:
             void setA(int a){a_ = a;}
             ...
    }
    Quello che mi chiedo è: il puntatore p_ mi può servire solo per la variabile a_ oppure lo posso usare in maniera diversa!? Ve lo chiedo perché ancora non ho capito bene l'uso pratico di puntatori all'interno di una classe.

    2)Che differenza c'è nell'usare char* e char!?

    In definitiva... dato che sono abbastanza confuso, non è che mi potete postare del materiale che riguardi (in maniera approfondita) uso di puntatori e array di caratteri!? Grazie e scusatemi

  2. #2
    i puntatori sono un tipo di dato che contengono l'indirizzo di memoria di altre variabili.
    Ti faccio un esempio:

    codice:
    int a[10]; // Ho un'array di 10 elementi
    int *pInt; // questo è un puntatore a interi
    
    a[0] = 2;
    a[1] = 3;
    
    pInt = a; // pInt "punta" ora all'inizio dell'area di memoria dell'array
    printf("%d", *p); // viene stampato 2, che è il primo elemento di a puntato da pInt
    
    p++; // L'indirizzo di memoria contenuto in pInt viene incrementato di 2 byte, occupati dagli int
    printf("%d", *p); // ora stampa 3
    non sò se ho reso l'idea.

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Perche' dovresti avere questa limitazione?

    Puoi allocare dinamicamente un intero e usare il puntatore per gestirlo ...

    char* e' un puntatore ad un dato di tipo char .... quest'ultimo e' il dato.

    I tuoi sono dubbi da C e non da C++ ... ripassa quelle parti ...

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    98
    ok grazie, sei stato molto chiaro... solo che quello che ancora non ho bene capito è l'uso che potrei fare di quel puntatore all'interno di una classe, come quella che ho riportato nell'esempio. Quello che mi domando è: ma il puntatore, in quel caso, lo posso usare solo per attributi della classe (e quindi farlo puntare alla variabile a_ ad esempio)?

  5. #5
    il puntatore lo puoi usare sui campi della classe

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Originariamente inviato da sccc
    ok grazie, sei stato molto chiaro... solo che quello che ancora non ho bene capito è l'uso che potrei fare di quel puntatore all'interno di una classe, come quella che ho riportato nell'esempio. Quello che mi domando è: ma il puntatore, in quel caso, lo posso usare solo per attributi della classe (e quindi farlo puntare alla variabile a_ ad esempio)?
    Allora non sono stato cosi' chiaro ...

    L'uso del puntatore NON e' limitato alla gestione di membri della classe ma puoi farlo puntare a qualsiasi posizione di memoria allocata ... (con le dovute attenzioni, ovviamente ...)

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    98
    Ahhh...oks, scusami tanto

  8. #8
    Un puntatore all'interno della classe torna utile (anzi necessario) se devi passare un array, una struct, una lista o qualsiasi tipo di dato complesso al costruttore o a un metodo, oppure può essere utilizzato all'interno della classe per il passaggio dello stesso tipo di dati tra i metodi della classe.
    VVoVe:

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.