fname[0]='/0' -> fname[0]='\0'
Nie wiem po co używasz const char*, skoro masz stringa... którego też używasz.
Z innych rzeczy
1. Używasz VLA, które raczej nie jest dobrą praktyką.
2. W konstruktorach z argumentami przypisujesz do argumentu zmienną z klasy
3. Nie widzę sensu robienia void jako const.
4. W konstruktorze możesz użyć listy inicjalizacyjnej
5. Kod Ci się nie skompiluje w przypadku np.
Person two ("Staszek")
Person three("Jacek", "Placek")
z uwagi na użycie r-val, gdzie konstruktor oczekuje l-val
Poczytaj o Rule of Five (kiedyś Rule of Three, ale nagle BANG! i C++11)