Разрешить пользователю называть объект класса

Итак, я столкнулся с этой проблемой, пытаясь создать текстовую игру для игры на работе. :П

Я хотел, чтобы пользователи могли создавать своего нового персонажа, и объект персонажа был бы назван независимо от того, что они вводят. Я знаю, что у меня может быть строковая переменная, которая содержит имя, и используется счетчик, но даже тогда я могу изменить программу? Вот пример.

(в этой ситуации есть меню, в котором используется регистр переключателя, и другой файл с классом «Символ»)

case: 1
string tempName;
cout << "Please enter the name of your new character." << endl;
cin >> tempName;
Character tempName();
Character.setName(tempName);
cout << "Congratulations! Your character " << Character.getName() << " has      been created." << endl;

-6

Решение

Нет, это просто не работает.

Прежде всего, компилятор должен знать все имена переменных при компиляции кода. После компиляции имена исчезают, а исполняемый файл содержит исполняемый двоичный код. Это само по себе делает невозможным изменение имен позже.

У вас также есть несколько других проблем в вашем примере кода, поэтому я уверен, что вы получите довольно много запутанных сообщений от компилятора. Я уверен, что сам компилятор довольно смущен вашими попытками. 🙂

Прежде всего Character tempName(); не объявляет объект типа Character, но () в конце заставляет его объявить функцию, возвращающую Character,

Дело в том, что tempName уже это имя string не делает это немного лучше.

Следующая строка Character.setName(tempName); Вероятно, попытка вызвать функцию для типа. Интересная попытка, но так не получится. Закрытие у вас есть Character::setName(tempName); если setName является статическим членом класса Character, Но это повлияет все объекты этого типа, а не только один.


О, и я думаю, case: 1 это просто опечатка для case 1:,

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]