Visualizzazione dei risultati da 1 a 3 su 3

Discussione: [c++]references

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826

    [c++]references

    ciao.
    Mi trovo di fronte ad un problema base che non ho capito dei references :
    1)
    codice:
    int& preinc(int& x) { ++x; return x; }
    preinc(y) = 5; // same as ++y, y = 5
    come funziona il reference sul tipo ritornato da una funzione e quando si usa generalmente?
    2)quando devo usare la parola chiave const nelle funzioni come parametri di ingresso e quando farne senza.(penso si riferisca agli r-value )

    grazie.

  2. #2
    1) I reference in generale sono dei puntatori camuffati, per cui puoi restituire un reference esattamente nelle stesse occasioni in cui puoi restituire un puntatore, ossia quando sei sicuro che la variabile a cui punta continuerà ad esistere dopo che la funzione è terminata.
    2) Quando non devi modificare i parametri usa const, se li devi modificare non usarlo. In generale si usa un const reference quando non si deve modificare l'oggetto passato e si vogliono evitare gli effetti del passaggio per valore (costruttore di copia/copia bit-a-bit, distruttore all'uscita).
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Pensa ai riferimenti, sempicemente come "una scorciatoia sintattica" nell'utilizzo dei puntatori.
    Di fatto semanticamentemente aggiungono ben poco al linguaggio C++ di quanto non sia già espresso con i soli puntatori: la loro introduzione in C++ è stata necessaria solo per "far quadrare" logicamente certi costrutti, quali ad esempio il costruttore di copia, l'operatore d'assegnamento ecc..

    ;-)

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.