I would recommend not to make it difficult, deciding to use it Person(move(name), move(surname))without special reasons for this.
, Person:
string name, surname;
while ((cin >> name) && (cin >> surnam)) {
Person p(name, surname);
}
name surname Person, . name surname , , , , , . name surname, .
move(), , , , . , move() .
, , , , "" string. , "" Person.
, , . , move() .