Supponendo ho:C++ const Ivalue riferimenti
- classe A che non è copiabile
- classe B, che ha come membro, const A & una (e prende una A sua constructer e la imposta nella sua lista di inizializzazione)
- una funzione
A GenerateA();
questo significa che esso deve essere valido per farlo: B (GenerateA()) ?
, ad esempio, il const const significa che non viene eseguita alcuna copia di A che genera A()? E questo significa che l'ambito del temporaneo restituito viene esteso fino a quando B esiste?
EDIT: domanda Addon dai commenti: È accettabile per restituire un A & da GenerateA() per un un locale, se il valore assegnabile è un const A &?
Grazie!
Non è possibile mantenere un riferimento a un valore la cui durata è stata interrotta; che è esattamente ciò che accade quando restituisci un riferimento a una variabile locale. – GManNickG
@GMan: Questo era essenzialmente l'intento della mia domanda, cioè, l'uso di un riferimento const cambia la vita di detto oggetto. –