Dans une certaine mesure oui...
Le constructeur de copie généré par le compilateur effectue une copie bit à bit des données de la classe, en supposant que les variables de la classe gèrent eux-mêmes la mémoire qui est leur allouée. C'est le cas pour un std::vector par exemple, mais ce n'est pas le cas pour un pointeur.
Dans le cas d'un pointeur, le constructeur de copie généré se contentera de copier le pointeur et non les données vers lesquelles il pourrait éventuellement pointer. Dans ce cas, il faut écrire explicitement un constructeur de copie pour gérer le pointeur.
Le cas est similaire pour le destructeur généré. Dans le cas d'un pointeur, celui-ci est supprimé mais les données éventuelles vers lesquelles il pointe ne sont pas supprimées (ce qui génère alors une fuite mémoire).
-----