Sto leggendo il libro di Bjarne Stroustrup intitolato "A tour of C ++".
La seguente sezione mi confonde:
When a class is a resource handle – that is, when the class is responsible for an object accessed through a pointer – the default member wise copy is typically a disaster.
Member wise copy would violate the resource handle’s invariant. For example, the default copy would leave a copy of a Vector referring to the same elements as the original:
void bad_copy(Vector v1) { Vector v2 = v1; // copy v1’s representation into v2 v1[0] = 2; // v2[0] is now also 2! v2[1] = 3; // v1[1] is now also 3! }
In particolare, non capisco quanto segue:
-
Quando
Vector
v1
viene passato come valore, non come riferimento, come maiv2
ev1
si riferiscono entrambi allo stesso indirizzo di memoria. -
Che cosa significa la frase "Quando una classe è un handle di risorsa" significa?