Sto prendendo una lezione sulla programmazione orientata agli oggetti usando C++.C++ compilatore 'superficiale' copie e assegnazioni
Nel nostro testo si dice,
Se non ci dichiariamo un costruttore di copia, il codice compilatore inserisce che implementa una copia. Se non dichiariamo un incarico con l'operatore , il compilatore inserisce il codice che implementa un assegnamento superficiale .
Quello che voglio sapere, è se questo è in realtà vero, ciò che l'allusione al meccanismo del compilatore viene effettivamente chiamato, e come funziona.
Questo è non una domanda sui costruttori di copia, riguarda il comportamento del compilatore.
MODIFICA> Maggiori contesto
Copia Constructor come definito dal testo:
La definizione di un costruttore di copia contiene la logica che
- esegue una copia su tutte le variabili di istanza non risorsa
- al individua memoria per ogni nuova risorsa
- copia i dati dalla risorsa di origine (s) alla risorsa appena creata (s)
Resource come definito dal testo
memoria che un oggetto che alloca in fase di esecuzione rappresenta una risorsa di quella classe dell'oggetto .
La gestione di questa risorsa richiede una logica aggiuntiva non necessaria per le classi più semplici che non accedono alle risorse. Questa logica aggiuntiva garantisce la corretta gestione della risorsa ed è spesso denominata copia profonda e assegnazione .
Senza alcun contesto, la citazione suona nel migliore dei casi. – juanchopanza
In base a "https://en.wikipedia.org/wiki/Object_copying", la copia superficiale viene utilizzata correttamente (concordato, potrebbe confondere i programmatori C++) –
L'istruzione è VERO. – user3344003