1--报错代码
# include<string>
std::ostream &print(std::ostream &os, std::string s1, const char* s2){
return os << s1 << s2;
}
2--修正代码
# include<string>
# include<iostream>
std::ostream &print(std::ostream &os, std::string s1, const char* s2){
return os << s1 << s2;
}
3--分析原因
① <string> 类中包含了 operator<< std::string 的实现,所以第一个 << s1 没有报错;
② <string> 类没有实现 operator<< char * 的功能,其在 <iostream> 中,所以第二个 << s2 报错,修正需包含 <iostream>;