Un costruttore di copia richiede sempre un parametro, riferimento al tipo per cui appartiene, ci forse altri parametri ma must hanno valori predefiniti.
Un costruttore di copia è chiamato come funzione di copia e lo scopo del costruttore di copie è di creare un oggetto di un tipo utilizzando un oggetto dello stesso tipo come base per la creazione del nuovo tipo.
specificare la norma è che il costruttore di copia essere del tipo:
T(const &T obj);
Questo permette in sostanza creazione di oggetti temporanei durante le funzioni di chiamare per valore o di ritorno oggetti del tipo per valore.
Questa sintassi facilita la creazione di un oggetto nuovo come:
T obj1(obj2); <--------- Direct Initialization
T obj1 = obj2; <--------- Copy Initialization
Se gli argomenti aggiuntivi trasferiti al costruttore di copia non sarebbe mandato ad avere valori di default, allora la costruzione di oggetti utilizzando la sintassi di cui sopra non sarebbe possibile .
Da qui la condizione di rigorosa,
ci forse altri parametri per un costruttore di copia ma hanno must hanno valori di default.
fonte
2012-01-30 15:13:21
Cosa intendi? – kennytm
X (const X e copy_from_me, int = 10); cosa succede se scrivo X (const X e copy_from_me, int); – haris
+1 per la domanda interessante, dovresti fare un po 'più di impegno nella presentazione la prossima volta però :) –