char b;
operator<<(cout,(operator>>(cin,b)));
这不是用c ++编译的,因为所有8个重载都无法转换此类型。
任何人都可以解释这个......
是返回类型的问题...........
答案 0 :(得分:6)
流提取操作,即op>>
返回类型为istream&
的对象。 op<<
没有以istream&
作为其第二个参数的重载。您需要拆分这两个动作或定义一个这样的重载。
答案 1 :(得分:0)
char b;
operator<<(cout,(operator>>(cin,b),b));
答案 2 :(得分:0)
问题是可以工作的输出运算符需要void*
,但这是一个成员。如果将其更改为以下内容,则会将istream&
返回的operator>>
转换为void*
并输出(如果提取有效,则为空指针,非否则为NULL指针):
cout.operator<<(operator>>(cin,b));
我不太确定你为什么要这样做。你能详细说明吗?如果要立即从cin
输出所有内容,请使用底层缓冲区
cout << cin.rdbuf();