![]() |
1
2
三组成员函数和一组全局函数将重载此“提取运算符”(>>),请参见 http://www.cplusplus.com/reference/istream/istream/operator%3E%3E/ .
当“chrom”为int时,运算符>>作为成员函数的算术提取器重载。正常对象和临时对象都可以正常工作。
当“chrom”是字符串时,运算符>>应重载为
|
![]() |
2
2
为了进一步阐述约翰·韦尔登的答案,业余经营者“>>”做了两件事:
因此,它同时修改其左操作数和右操作数。在您的例子中,左侧操作数是一个临时值,编译器不愿意修改它。 |
![]() |
4
1
因为从stringstream提取的第一个值是std::string。如果它是一个int,那么stringstream(line)版本就可以工作。 Std::String的Stringstream中没有成员函数运算符>。因此,临时流不能用作左值。 不是说我完全理解上面的内容…但也许这是一个更好的答案的起点。 |
![]() |
cdecaro · 将数字的字符串数组转换为整数数组时,元素变为0 7 年前 |