C ++: Automatyczna realokacja wektorów wywołuje konstruktory kopii? Czemu?

Czytam C ++ Primer, 3. Ed (Lippman i Lajoie) i mówi, że kiedy wektor musi zostać ponownie przydzielony, aby zrobić miejsce na więcej elementów dodanych za pomocąpush_back(), elementy są kopiowane w nowej przestrzeni, a następnie destruktor jest wywoływany na starych elementach. Jestem zdezorientowany, dlaczego jest to konieczne - dlaczego dane nie mogą być po prostu kopiowane bitowo? Zakładam, że odpowiedź ma związek z dynamiczną alokacją pamięci, ale moja obecna linia rozumowania jest taka, że ​​nawet jeśli elementy wektorowe obsługują pamięć dynamiczną, dane faktycznie przechowywane w elementach będą wskaźnikami, co oznacza, że ​​kopiowanie bitowe zachowa lokalizację, którą wskazują do i nie przedstawi żadnych problemów. Widzę, jak zmiana lokalizacji dynamicznie przydzielanej pamięci, na którą wskazują elementy, byłaby problemem, ponieważ unieważniłaby wskaźniki, ale o ile mogę stwierdzić, że zmiana lokalizacji wektorów nie miałaby tego powodu.

Czy ktoś może mi podać prosty przykład klasy, która nie powinna być przenoszona po kolei?

questionAnswers(2)

yourAnswerToTheQuestion