Я занимаюсь C++ OOP, и я ожидал, что переменная private внутри класса будет обновлена после установки ее публичной функцией, но ничего не произошло. Вот код.Почему переменная не обновляется
#include <iostream>
using namespace std;
class HideAndSeek
{
private:
string isHidden = "N";
public:
string getHiddenStatus()
{
string hiddenStatus = isHidden;
return hiddenStatus;
}
void setHiddenStatus(string hiddenStatus)
{
isHidden = hiddenStatus;
}
};
int main()
{
HideAndSeek yayOrNay; //HideAndSeek object instance
string f = yayOrNay.getHiddenStatus(); //Gets the value of private isHidden in HideAndSeek class
cout << f << endl; //Value of f should be "N"
yayOrNay.setHiddenStatus("Y"); //This should set isHidden to "Y"
cout << f << endl; //Value of f should now be "Y"
}
строковой переменной F выходы "N" в обоих случаях, даже если его значение должно быть изменено на "Y" с
yayOrNay.setHiddenStatus("Y");
Кроме того, я обнаружил, что вызов
yayOrNay.getHiddenStatus()
к переменной f снова
f = yayOrNay.getHiddenStatus();
дает правильный вывод, но я думаю, что это слишком много шагов для обновления значения переменной. Может кто-нибудь, пожалуйста, укажите мою ошибку?
Что такое 'int a = 5; int b = a; a = 6; cout << b; 'print? – immibis
immibis b будет == 5 – FlashspeedIfe
Причина b равна 5 по той же причине, что и здесь «N». – immibis