Память должна быть освобождена в деструкторе mystring, но вам нужно будет немного переосмыслить свой дизайн.
mystring operator +(mystring s)
{
mystring result;
result.ptr = new char[strlen(ptr) + strlen(s.ptr) + 1];
strcpy(result.ptr,ptr);
strcat(result.ptr,s.ptr);
return result;
}
Обратите внимание, что вам нужен конструктор по умолчанию для создания пустой строки.Кроме того, вам придется обрабатывать ресурс ptr, добавляя правильный конструктор копирования, оператор присваивания и деструктор.Кроме того, вы должны принимать ваш параметр по const &.Кроме того, оператор + лучше реализован как свободная функция;либо в качестве друга, либо в качестве члена + = оператор.