1.关于iostream头文件中的cout对象没有包含对string的<<操作符重载函数
测试代码:
#include<iostream>
using namespace std; int main(){
string a = "av";
cout << a << endl; system("pause");
return ;
}
这里vs2013会报错,错误信息是
IntelliSense: 没有与这些操作数匹配的 "<<" 运算符
操作数类型为: std::ostream << std::string
猜想解释:
虽然iostream包含了string头文件的部分内容,使得不用#include<string>就能使用string对象,但是iostream头文件中的cout对string的<<重载运算符函数写在了<string>里面了,并没有写在iostream里面。暂时不懂这样设计的原因。
解决方法:
只要加上#include<string>就没问题了。