C ++: Realocação automática de vetor invoca construtores de cópia? Por quê?

Eu estou lendo o C ++ Primer, 3rd Ed (Lippman e Lajoie) e está dizendo que quando um vetor precisa ser realocado para dar espaço para mais elementos adicionados compush_back(), os elementos são construídos em cópia no novo espaço e, em seguida, o destruidor é chamado nos elementos antigos. Estou confuso sobre por que isso é necessário - por que os dados não podem ser copiados bit por bit? Suponho que a resposta tenha a ver com a alocação de memória dinâmica, mas minha linha de raciocínio atual é que, mesmo que os elementos vetoriais manipulem memória dinâmica, os dados realmente armazenados nos elementos serão ponteiros, o que significa que a cópia bit a bit preservará a localização e não apresentará nenhum problema. Eu posso ver como reposicionar a memória alocada dinamicamente para a qual os elementos apontam seria um problema, uma vez que isso invalidaria os ponteiros, mas até onde eu posso dizer, a realocação vetorial não teria razão para fazer isso.

Alguém pode me dar um exemplo simples de uma classe que não deve ser movida pouco a pouco?

questionAnswers(2)

yourAnswerToTheQuestion