Non è possibile, e non lo è.
Un riferimento C++ è non un puntatore. È un alias di un oggetto. A volte, il compilatore sceglie di implementare questo utilizzando un puntatore. Ma spesso lo implementa con senza fare nulla. Generando semplicemente il codice che si riferisce direttamente all'oggetto originale.
In ogni caso, sizeof
applicato a un tipo di riferimento non fornisce la dimensione di un riferimento. Quindi non è molto chiaro cosa stai facendo, rendendo impossibile spiegare cosa sta succedendo.
Modifica
Ora che hai mostrato qualche codice, possiamo rispondere alla domanda:
sta assumendo le dimensioni di una classe che contiene un riferimento.Come ho detto sopra, un riferimento non è un puntatore, ma quando necessario, il compilatore può ricorrere all'utilizzo di un puntatore per rappresentarlo. Quando si crea una classe contenente un riferimento, l'unico modo (sensato) in cui il compilatore può implementarlo è la definizione di una classe che contiene l'indirizzo di un oggetto. Sui sistemi a 32 bit, gli indirizzi sono 32 bit o 4 byte, larghi. Dunque sizeof
tale classe sarà (tipicamente) 4.
Non è possibile ottenere la dimensione di un riferimento, perché un riferimento non è un oggetto. Per favore mostraci con quale codice stai testando. –
perchè i voti negativi? – AlexDan
Perché la tua domanda non ha senso. Come dice @R.MartinhoFernandes, non è possibile ottenere le dimensioni di un riferimento. Quindi, a meno che non pubblichi un codice che mostri quello che stai facendo *, non abbiamo idea di cosa stai chiedendo, o come rispondere – jalf