c++ 书上说>>没有string的重载版本,也就是说cin>>str;是不行的(str是一个st

2025-02-27 03:35:33
推荐回答(2个)
回答1:

cin >> 后面跟上 xxx是操作符重载的语法
操作符重载实际上就是另类函数

你可以调用 cin.operator >>(xxx) ;
这样是不是就好理解了。>> 这个符号就相当于是函数名。

所以说 提示中说的没有重载版本,意思就是说并没有定义
cin.operator >> (std::string& str); 这个函数,那么你去找找它定义了哪些版本就行了。

回答2:

书上原话是怎么说的?要完整的。
cin>>str;肯定是可以的,天天都在这么使用,而且任何一种编译器都肯定可以,C++标准也支持,如果你写的就是书上的原话,那就是书写错了,如果还有其他上下文,不妨全都拿出来分析一下