Вероятно, очень простой вопрос, но у меня есть чертовски время, выясняя это. У меня есть базовый класс:C++ Полученный класс Доступ к члену базового класса
class User
{
public:
User();
~User();
void GetUser();
void SetUser();
protected:
std::string name;
};
Вот мой производный класс:
class UserInfo: public User
{
public:
void GetUser();
};
И методы:
User::User()
{
name = "";
}
void User::GetUser()
{
cout << name;
}
void User::SetUser()
{
cin >> name;
}
User::~User()
{
name = "";
}
void UserInfo::GetUser()
{
cout << " ";
User::GetUser();
cout << ", you entered: ";
}
Все, кажется, работает хорошо, но когда я называю USERINFO :: GetUser() из программы, он не выполняет или не извлекает значение, хранящееся в члене имени класса User. Как получить эту ценность? Благодарю.
Нет ничего явно неправильного в коде, который показан (ну, ничего, что непосредственно имеет отношение к заявленному вопросу). Поэтому проблема должна быть в коде, который не показан. –
Показать код, который вызывает GetUser(). Возможно, вам нужен 'virtual void GetUser();' вместо 'void GetUser();' в классе 'User'. – drescherjm
[Работает для меня] (http://rextester.com/PUMIM54797) –