C++ C++;cout<&书信电报;自动地

C++ C++;cout<&书信电报;自动地,c++,cout,C++,Cout,如果我有一个包含两个变量x和y的简单类,以及一个返回带数据的格式化字符串的函数ToString()。当我打电话时 cout << simpleClass << "\n"; cout如果你问如何定义这样一个操作符 模板 std::基本_ostream& 运算符您定义的 std::ostream& operator <<(std::ostream&, const SimpleClass&) std::ostream&operator+1

如果我有一个包含两个变量x和y的简单类,以及一个返回带数据的格式化字符串的函数ToString()。当我打电话时

cout << simpleClass << "\n";

cout如果你问如何定义这样一个操作符

模板
std::基本_ostream&
运算符您定义的

std::ostream& operator <<(std::ostream&, const SimpleClass&)

std::ostream&operator+1:我喜欢你如何实现一个对所有
basic_ostream
对象进行操作的函数,而不仅仅是
cout
@ildjarn:然而,我想知道你将如何编写一个
SimpleClass::ToString()
成员,返回任何请求的字符串。(我遗漏了什么吗?@sbi:假设用户将传入与字符串字符类型兼容的流,否则将出现编译器错误(就像尝试将
std::wstring
流式传输到
std::ostream
)@sbi:我完全不同意——流/字符串类型不仅仅是字符类型;e、 g.流可以使用非默认的
TraitsT
参数。@sbi:我也不同意这一点
char-const*
std::string
都能同样好地流到
std::basic_ostream
std::basic_ostream
(例如
std::cout
std::wcout
)。为什么仅仅因为角色类型很窄就必须使用窄流?