Diciamo che abbiamo classe X con il costruttore definito X(int value)
.Differenza nella costruzione dell'oggetto utilizzando "X x (42)" e "X x = 42"?
È questo semanticamente equivalente o no?
X x = 42;
X x(42);
credo che la differenza appare solo se aggiungiamo esplicito parola chiave per costruttore X. Altrimenti compilatore ridurrà espressione X x = 42;
-X x(42);
Prego, correggetemi se sbaglio.
Verrà bypassato un operatore di assegnazione esplicita? Avrei pensato che avrebbe preso quella strada. Ma il mio cervello è stato certamente un po 'confuso. –
No, non è consentito costruire un temporaneo. Lo stai confondendo con 'X x = X (42)'? – Pubby
@Pubby: Sì, lo è - si chiama _copy initialization_ per un motivo. ; -] Anche se in pratica, sarà sempre eluito. – ildjarn