: ваш конструктор копирования создает два указателя, а затем просто пропускает их. Он никогда не устанавливает переменные-члены класса.
Возможно, вы захотите обратиться к правилу три / пять / и т. Д., И это не помешает delete
конструктору по умолчанию для ясности.
class Pair {
public:
int *pa, *pb;
Pair() = delete;
Pair(int a, int b): pa{new int{a}}, pb{new int{b}} {}
Pair(const Pair& other): pa{new int{*other.pa}}, pb{new int{*other.pb} {}
~Pair(){
delete pa;
delete pb;
}
};