Есть два разных игрока, один в option::create
и другой в option::info
. Вы читаете один и распечатываете информацию другого.
Я не понимаю, для чего option
хорош. Идомати c способ чтения ввода и записи вывода заключается в перегрузке operator<<
и operator>>
:
std::istream& operator>>(std::istream& in, playerone& p) {
in >> p.Name;
// read other members from in
return in;
}
std::ostream& operator<<(std::ostream& out,const playerone& p) {
out << p.Name;
// write other members to out
return out;
}
Теперь вы можете читать и писать playerone
следующим образом:
int main() {
playerone p;
std::cout << "Name: ";
std::cin >> p;
std::cout << "Player info: " << p;
}
Если вы хотите, чтобы option
управлял игроком, вы можете сделать это следующим образом:
class option{
playerone player;
public:
void create(){
std::cin >> player;
}
void info(){
std::cout << player;
}
};
Важным моментом является то, что теперь create
и info
используют одно и то же playerone
, который я сделал членом option
.