有两个功能:如何调用重载函数中的函数
#include "stdafx.h"
#include <string.h>
#include <vector>
uning namespace std;
vector<string> func1(vector<string> name1){
vector<string> out;
//do something and call our first function
for(int i=0; i<100;i++){
out.push_back(func1(name1[i]));
}
return out;
}
string func1(string name1){
string out;
//do something
return out;
}
int main(){
vector<string> vector_in;
vector<string> vector_out;
//generate text
for (int i = 0; i < 100; i++) {
vector_in.push_back(string("string"));
}
for (int i = 0; i < 100; i++) {
vector_out.push_back(func1(vector_in));
}
但是,当我尝试从功能vector<string> func1(vector<string> name1)
调用函数string func1(string name1)
我得到一个错误:
Error C2664 "std::vector> func1(std::vector>)": it is impossible to convert>argument 1 from "string" to "std::vector,std::allocator<_Ty>>"
可能是什么问题?
我希望看到一个SSCCE。你也不能从想返回int的函数返回int []。事实上,当我创建一个独立的示例时,[完全无法重现](http://coliru.stacked-crooked.com/a/ee09eb4194507405)。 –
请尝试创建一个[最小,完整和可验证示例](http://stackoverflow.com/help/mcve)向我们展示。除了语法等明显的错误之外,行为不应该是你声称的行为。 –
第二个函数不会编译。返回类型是“int”,但是它返回一个指向局部变量的指针('out')。而'int out []'在C++中是一个无效的声明。 – Peter