我有一個Date類轉換日期類字符串
class Date { int dd, mm, yyyy};
我寫的3規則,所有的作品。我想將日期轉換爲字符串。我是否需要一個轉換運算符string()來執行此操作? thx!
我有一個Date類轉換日期類字符串
class Date { int dd, mm, yyyy};
我寫的3規則,所有的作品。我想將日期轉換爲字符串。我是否需要一個轉換運算符string()來執行此操作? thx!
當我想建立一個對象的文本表示可用的,我平時寫(public
)print()
方法,它接受std::ostream&
。這使我可以輕鬆地進行單元測試,並且它可以公開私有數據,而無需製作friend
。
void Date::print(std::ostream& s) const
{
s << yyyy << "-" << mm << "-" << dd;
}
這使得編寫流insertion operator是Jesus Ramos suggested優雅而簡單:
std::ostream& operator<<(std::ostream& s, const Date& d)
{
d.print(s);
return s;
}
如果你(真)想std::string()
operator
,那麼這是微不足道的:
Date::operator std::string() const
{
std::ostringstream oss;
print(oss);
return oss.str();
}
std::ostream& operator<<(std::ostream& s, const Date& d)
{
s << "Format your date object here";
return s;
}
在C++中,如果需要toString()類似的功能,可以使用流。
因此,舉例來說,你可以做
s << mm << "/" << dd << "/" << yyyy;
THX耶穌,讓我試試吧 – itcplpl
你的意思是'ostream'在這裏? 'std :: stream'對我來說是新的。 –
@Steve謝謝,一定有錯誤的東西。 –