I have this code:
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中始终会得到空字符串"",且没有错误。
这种情况总是有效吗?
我需要上述行为,即如果用户未调用set,则str始终为空字符串。
我应该在构造函数中初始化str,如下所示:
class myclass
{
std::string str;
public:
myclass():str(""){}
void setStr(std::string value)
{
str=value;
}
std::string getStr()
{
return str;
}
}
我希望确保在所有平台上的行为都是一致的,同时也要确保代码尽可能地小巧精致。