Проблема в том, что вы печатаете sum
, но вы никогда не инициализируете sum
из obj1
и obj2
.
Вы инициализируете sum
только внутри add()
, но передаете значения вadd()
от копия , поэтому вы инициализируете sum
только во временных объектах.
При печати obj1.sum
и obj2.sum
(через display()
), элемент sum
все еще не инициализирован.
Итак, мусор.
Попробуйте передать объекты по ссылке
// ..........V........V
void add (DM & p1, DB & p2)
Таким образом, инициализация sum
inside add()
действует также для вызова объектов.