// oddzielna rezerwacja pamięci

// ... Teraz przy każdym kopiowaniu obiektu nastąpi oddzielne zarezerwowanie pamięci na zmienną typu int i przypisanie jej wartości z obiektu wzorcowego. Gdy zmieniana jest jej wartość w jednym z obiektów, nie nastąpi zmiana w drugim, ponieważ teraz są to dwa różne obszary w pamięci. Podczas niszczenia obiektów każdy z destruktorów zwolni zarezerwowany osobny obszar pamięci i poprzedni błąd z dwukrotnym zwalnianiem pamięci nie wystąpi.

Konstruktor konwertujący (C++) Konstruktor, którego jedynym argumentem niedomyślnym jest obiekt dowolnej klasy lub typ wbudowany. Powoduje niejawną konwersję z typu argumentu na typ klasy własnej konstruktora. Na przykład (przykład w C++):

class MojaKlasa{ public: MojaKlasa( int parametr ) { // konstruktor konwertujący z typu int na typ MojaKlasa // ciało konstruktora

void funkcja( MojaKlasa obiekt ) { /* ciało funkcji */ }

int main (){ int zmienna = 5; funkcja( zmienna ); // wywołanie konstruktora konwertującego z int na MojaKlasa return 0; }