What this line string theSpare = itsName; says is "assign the current value of itsName to theSpare". It does not make theSpare an alias for itsName. If you want to modify the value of itsName you need to std::getline() into it, on line 26.
Please can you show me how you would alter itsName with cin or getlin(cin) without the defualt constructor?
That would be greatly appreciated. Many thanks.