有兩個功能:如何調用重載函數中的函數
#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