Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [C++]Reference e Puntatori

    Ma se in C++ ho i reference perche dovrei usare i puntatori??
    Non basta che se il parametro passato puo essere NULL o cancellato nella funz sia un puntatore o in tutti gli altri un reference???
    La stupidità umana e l'universo sono infinite.
    Della seconda non sono certo(Einstein)

    Gnu/Linux User

  2. #2
    Utente di HTML.it L'avatar di Fox82
    Registrato dal
    Feb 2002
    Messaggi
    459
    Nel caso dei puntatori puoi cambiare l'oggetto a cui essi puntano, nel caso dei reference no.

    Comunque il loro funzionamento (a parte il discorso precedente e quello dell'inizializzazione) è identico, però la sintassi dei reference è più chiara e trasparente
    Linux user number 403381

    Stop TCPA!

  3. #3
    Utente bannato
    Registrato dal
    Sep 2003
    Messaggi
    1,012
    Nel caso dei puntatori puoi cambiare l'oggetto a cui essi puntano, nel caso dei reference no.
    A me pare un'affermazione sbagliata..

    Comunque, anche se la sintassi è + chiara, con i puntatori si è più consapevoli di quello che si sta facendo!

  4. #4
    Originariamente inviato da iguana13
    A me pare un'affermazione sbagliata..
    Perchè? :master:
    I reference durante la definizione devono essere inizializzati, e non possono cambiare la variabile puntata durante l'esecuzione del programma...

  5. #5

    ...

    Originariamente inviato da iguana13
    A me pare un'affermazione sbagliata..

    Comunque, anche se la sintassi è + chiara, con i puntatori si è più consapevoli di quello che si sta facendo!
    Si è vero, conviene sempre programmare senza guanti. Si riesce a tastare meglio ciò che si fa.
    Concordo pienamente, difatti quando programmo in C++ mantengo molto e dico molto delle abitudini acquisite nel C.

    Ciao !

  6. #6
    Utente bannato
    Registrato dal
    Sep 2003
    Messaggi
    1,012
    Originariamente inviato da GNAWS
    Perchè? :master:
    I reference durante la definizione devono essere inizializzati, e non possono cambiare la variabile puntata durante l'esecuzione del programma...
    Nonono

    Forse ti confondi.
    Questo è un esempio con le variabili indirizzo (testato, compilato e funzionante):
    codice:
    #include <iostream>
    using namespace std;
    
    void main()
    {
        // Creo una variabile
        int n = 15;
        // Creo una variabile indirizzo che punta a n
        int &ref = n;
        // Scrivo n (15)
        cout << n << endl;
        // Modifico n tramite l'indirizzo
        ref = 20;
        // Riscrivo n, ma scrive 20
        cout << n << endl;
    }
    Un esempio con i parametri indirizzo:
    codice:
    #include <iostream>
    using namespace std;
    
    // Qui dichiaro il parametro come indirizzo
    void incrementa(int &numero);
    
    void main()
    {
    	// Creo una variabile
    	int n = 15;
    	// Scrivo il 15
    	cout << n << endl;
    	// Lo incremento tramite la funzione
    	incrementa(n);
    	// Ora scriverà 16
    	cout << n << endl;
    }
    
    void incrementa(int &numero)
    {
    	numero++;
    }



  7. #7
    Utente di HTML.it L'avatar di Fox82
    Registrato dal
    Feb 2002
    Messaggi
    459
    Quello che intendevo (mi sono espresso male) è che con i reference non puoi cambiare l'indirizzo a cui essi puntano...
    Linux user number 403381

    Stop TCPA!

  8. #8
    Utente bannato
    Registrato dal
    Sep 2003
    Messaggi
    1,012
    Ah, allora hai ragione!

    Però se uso un semplice puntatore come parametro, non posso ugualmente cambiare l'irizzo puntato. In questo caso dovrei usare un puntatore a puntatore!

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.