У меня есть этот код:
class myclass
{
std::string str;
public:
void setStr(std::string value)
{
str=value;
}
std::string getStr()
{
return str;
}
}
main()
{
myclass ms;
std::cout<<ms.getStr()<<std::endl;
}
Когда я компилирую и запускаю этот код, возникает ошибка, и в Windows я всегда получаю str как "".
Это всегда верно?
Мне нужно описанное выше поведение в том смысле, что если бы пользователь не вызывал set, str всегда будет пустой строкой.
я должен инициализировать str в конструкторе следующим образом:
class myclass
{
std::string str;
public:
myclass():str(""){}
void setStr(std::string value)
{
str=value;
}
std::string getStr()
{
return str;
}
}
Я хочу убедиться, что поведение одинаково на всех платформах, а также сделать код максимально маленьким и аккуратным.