Il y a deux fonctions:Comment appeler une fonction à l'intérieur d'une fonction surchargée
#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));
}
Mais lorsque je tente d'appeler la fonction string func1(string name1)
de la fonction vector<string> func1(vector<string> name1)
je reçois une erreur:
Error C2664 "std::vector> func1(std::vector>)": it is impossible to convert>argument 1 from "string" to "std::vector,std::allocator<_Ty>>"
Quoi le problème?
J'aimerais voir un SSCCE. De plus, vous ne pouvez pas retourner 'int []' à partir d'une fonction qui veut retourner 'int'. En fait, je [ne peux tout à fait reproduire cela] (http://coliru.stacked-crooked.com/a/ee09eb4194507405) lors de la création d'un exemple autonome. –
Veuillez essayer de créer un [Exemple minimal, complet et vérifiable] (http://stackoverflow.com/help/mcve) pour nous montrer. Outre les erreurs évidentes dans la syntaxe, etc., il n'y a aucun moyen que le comportement soit ce que vous prétendez être. –
La deuxième fonction ne serait pas compilée. Le type de retour est 'int', mais il retourne un pointeur vers une variable locale (' out'). Et 'int out []' est une déclaration invalide en C++ dans une fonction. – Peter