程序如图所示。
代码是c++primer 第五版 P203页–列表初始化返回值–的案例。
所用编译器为DEVC++ 5.11
具体问题为,
原因是这个vector<string> process()函数的形参列表为空,
在int main()中,当本人想调用这个process()函数时,本人不知道应该提供实参去初始化形参。
本人试了两种:
第一,按照书中所给的自定义函数,依旧写为process(),在int main中调用时写为“process(exp, act)”。
运行结果报错:
[Error] too many arguments to function “std::vector<std::basic_string<char> > process()”
很明显,实参数目与形参不匹配。
第二,在vector<string> process()中本人加了string exp,string act,两个形参。
调用process函数时 写为“process(exp, act)”。
在vector<string> process()中,不管能否初始化exp和act,
运行结果都报错:
[Error] declaration of “std::string exp” shadows a parameter
这个本人不太明白是怎么一回事。
求指点
解决方案
80
原因是cout没有重载对于vector<string>这种类型的<<运算符