questa è una domanda molto semplice ma non ho fatto C++ correttamente per anni e quindi sono un po 'sconcertato da questo. Inoltre, non è la cosa più semplice (almeno per me) per cercare su internet, non per provare.C++ Object senza nuovo
Perché non utilizza la parola chiave new
e come funziona?
Fondamentalmente, cosa sta succedendo qui?
CPlayer newPlayer = CPlayer(position, attacker);
Brillante, grazie. –
In realtà il compilatore probabilmente lo ottimizzerà. In tal caso, il costruttore della copia non verrà richiamato. http://stackoverflow.com/questions/1758142/why-copy-constructor-is-not-called-in-this-case – BostonLogan
Un'assegnazione in una dichiarazione non è meno efficiente dell'uso della sintassi del costruttore. Se fossero state dichiarazioni separate, l'osservazione sui temporari sarebbe corretta. L'essenza è che questo dichiara un CPlayer (tipicamente sullo stack) piuttosto che allocare lo spazio per esso dal negozio gratuito (heap). –