Опять ошибка связана с передачей объекта по значению, а не по ссылке.
В результате удаления копии объекта вызывается деструктор, в котором
удаляется память, а потом еще раз по завершении main вызывается
соответствующий деструктор. Рекомендую тщательно разобраться,
в каких случаях вызывается деструктор, об этом говорится во многих
учебниках, возьмите, например, Самоучитель C++, Г. Шилдт.
Для исправления ошибки определите перегрузку "+" как
tagMatrix tagMatrix::operator +(tagMatrix &t)
И еще замечание по поводу деструктора: первый вариант программы
удалял память, занятую под массив ссылок, а сами ссылки оставались
неосвобожденными. Теперь же перекос в другую сторону:
ссылки освобождаются, а массив ссылок нет. Поэтому деструктор
должен выглядеть следующим образом:
Код:
~tagMatrix()
{
for (int i=0; i<(len);i++)
delete matr[i];
delete matr;
}