Есть несколько проблем с вашим кодом. Для начала, почему класс;
это то, что я ожидал бы сделать с помощью простой функции:
void reverse( char* begin, char* end );
И вам не нужен индекс, так как у вас уже есть указатели; вы
можно просто увеличивать и уменьшать указатели.
Кроме того, почему вы выделяете память в своем конструкторе. Память о том, что ты
никогда не используйте (или бесплатно).
Наконец, вы действительно ничего не инвертируете в своем цикле. Вам нужно
поменяйте местами символы, а не просто скопируйте в конце
начало.
А что касается нарушения прав доступа: строковый литерал является константой. Вы
не могу изменить это. Если вы хотите сделать обратное на месте, вам нужно
скопируйте строку в другое место (или используйте ее для инициализации массива).