Appunti tratti dalla rilettura di More Effective C++ di Scott Meyers. Quarto blocco: Efficienza.
(19) Da dove vengono gli oggetti temporanei.
Un caso comune é quello dell'oggetto temporaneo creato dal compilatore per convertire un parametro passato ad una funzione al tipo effetivamente richiesto. Ad esempio, una funzione richiede un oggetto di tipo string, noi passiamo un char*.
Se il parametro é specificato come "const string&", il compilatore silenziosamente genera l'oggetto corretto per noi. Ma se invece fosse un "string&" non lo potrebbe fare, dato che, non essendo costante, sarebbe possibile fare delle modifiche a questo oggetto che andrebbero però perse alla fine della funzione, quando l'oggetto temporaneo viene distrutto.
Sta a noi decidere se intendiamo pagare il costo della creazione di un oggetto temporaneo o no.
Nessun commento:
Posta un commento