Konstruktor kopiujący to specjalna metoda klasy, która jest wywoływana, gdy tworzymy nowy obiekt jako kopię istniejącego obiektu. Konstruktor ten pozwala na skopiowanie wartości pól jednego obiektu do drugiego, co jest szczególnie istotne w przypadku dynamicznego zarządzania pamięcią i alokacji zasobów. Przykład w C++: `Samochod(const Samochod &inny) { marka = inny.marka; przebieg = inny.przebieg; }`. Konstruktor kopiujący zapobiega tzw. płytkiemu kopiowaniu (shallow copy), które może prowadzić do błędów, takich jak zwielokrotnione zwolnienie tej samej pamięci (double free). Jest to kluczowy mechanizm zapewniający bezpieczeństwo i poprawność działania aplikacji.
Metoda statyczna należy do klasy, a nie do jej obiektów, i nie jest automatycznie wywoływana przy tworzeniu kopii obiektu. Destruktor to metoda, która usuwa obiekt i zwalnia zasoby, ale nie jest wywoływana podczas kopiowania obiektu – jego rola pojawia się na końcu cyklu życia obiektu. Metoda zaprzyjaźniona (friend function) to funkcja, która ma dostęp do prywatnych i chronionych elementów klasy, ale nie jest automatycznie wywoływana w procesie kopiowania obiektów. Tylko konstruktor kopiujący realizuje mechanizm tworzenia kopii obiektów.