Если надо то можно написать и со stuct внутри класса и с char вместо стрингов. Твоя основная ошибка заключалась в том что ты создавал в каждой функции новый patient ptnt[], а надо было создать его один раз в самом классе и мотом в функции input задать размер.
Ты создавал в каждой функции новый экземпляр patient из-за этого не работало.Ещё я вынес struct из класса
и заменил массив char на string можно сделать и с char но там надо будет вводить и выводить с помощью цикла короче геморно, но можно.
Если что отпишись объясню=)