Как перегрузить оператор +?
Вы возвращаете ссылку на локальный объект, так нельзя. Компилятор должен был предупредить об этом. Правильно как-то так (не видя ваш класс я могу ошибаться):Vect operator+(const Vect &lhs, const Vect &rhs)
{
  Vect v;

  v.size = lhs.size + rhs.size;
  v.vec = new int[v.size];

  std::copy(lhs.vec, lhs.vec + lhs.size, v.vec);
  std::copy(rhs.vec, rhs.vec + rhs.size, v.vec + lhs.size);

  return v;
}
В каком смысле "пустой массив"?
Заполняться у вас массив будет только если на одинаковых местах в массивах находятся одинаковые элементы. Во всех остальных случаях в массиве будут нули.
Вы не проверяете, что this.size>=ob.size, но действуете будто это так. Может скрэшиться.
Оператор + имеет другую семантику. Лучше бы использовать для этого оператор & --он может обозначать пересечение.