Этот код логически хорош (часть с new
/ delete
, о которой вы спрашиваете), но плохо спроектирован в других аспектах.
Во-первых, если class A
владеет выделенной кучей int
(int
живет столько, сколько живет class A
объект), нет смысла создавать его с new
, это было бы намного эффективнее сделать его переменной-членом class A
. Во-вторых, вы не должны делать это public
- это нарушает инкапсуляцию и допускает много злоупотреблений.
Наконец, у вас все еще есть конструктор копирования и оператор присваивания, которые разрешены и не реализованы, поэтому каждый раз, когда объект класса копируется, вы получаете поверхностное копирование. Вы должны либо реализовать их надлежащим образом, либо запретить их .
Часть, в которой вы delete
переменную, выделенную с помощью new
, вполне подходит.