Итак, вы создали объект 'secondObject', используя конструктор из 3 аргументов, используя введенные пользователем значения в качестве параметров.Следовательно, переменные-члены этого объекта устанавливаются через конструктор, и использование методов 'set' не является действительно необходимым.В вашем случае, методы set будут полезны, если вы захотите изменить значения позже.Например, давайте представим, что пользователь вводит 10, 10 и 2.5 для значений.Затем вы используете конструктор для создания объекта с этими значениями.Разница лишь в том, что вы сначала помещаете эти значения в переменные.Но это работает так же.Если вы хотите изменить значение количества позже, вы можете сделать secondObject.setQuantity(2);
И количество для этого объекта теперь установлено равным 2. Причина, по которой ваши вызовы .set не работают, заключается в том, что вам нужно передать параметрык этим методам, т.е. к значению, которое вы хотите установить.
Что касается печатаемого метода деструктора, объекты уничтожаются, когда они выходят из области видимости, и освобождается память.Обычно ничего не происходит с точки зрения вывода - объект просто выходит из области видимости, а компилятор освобождает память и занимается своим делом.Тем не менее, вы закодировали собственный деструктор, который выводит «Объект разрушается», который находится в конце основного.Скорее всего, ваш конструктор работает нормально, я просто не уверен, что вы ожидаете.Я бы также предложил вам ознакомиться с утечками памяти в C ++, особенно в отношении ключевого слова «new».