关于调用vector process()函数时无法确定怎么提供实参

C++语言 码拜 7年前 (2017-04-19) 871次浏览
关于调用vector process()函数时无法确定怎么提供实参
程序如图所示。
代码是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

引用:

这些都有的
#include<iostream>
#include<vector>
#include<string>
using std::vector;
using std::string;

原因是cout没有重载对于vector<string>这种类型的<<运算符


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于调用vector process()函数时无法确定怎么提供实参
喜欢 (0)
[1034331897@qq.com]
分享 (0)