een functie leveren met een string of een int

Ik heb een functie (zie hieronder) die de origanal-ingangsvariabele uitvoert. Het probleem is dat ik niet kan ....

int print(std::string value){
    std::cout << value << std::endl;
return 0;   
}

als ik een int probeer te geven, wordt er een fout gegenereerd. Ik heb een manier nodig om het elk variabel type te kunnen voeden (kijk later welk type het is) en dienovereenkomstig te handelen

1

1 antwoord

Ik heb dit volledig herschreven omdat ik de vraag verkeerd heb gelezen ...

U kunt sjablonen gebruiken om een ​​generieke functie te maken:

template 
int print(const T& value)
{
    std::cout << value << std::endl;
    return 0;
}

Of u kunt eenvoudig twee verschillende functies hebben:

int print(const std::string& value)
{
    std::cout << value << std::endl;
    return 0;
}

int print(int value)
{
    std::cout << value << std::endl;
    return 0;
}
7
toegevoegd
Ik heb mijn antwoord herschreven, alsjeblieft.
toegevoegd de auteur Andrew Rasmussen, de bron
Graag gedaan! Up-to-date + akkoord als ik je vraag heb beantwoord :)
toegevoegd de auteur Andrew Rasmussen, de bron
Geeft nog steeds een foutmelding bij gebruik van print (2); ongeldige initialisatie van niet-const-verwijzing van het type 'std :: string &' van een tijdelijke van het type 'int'
toegevoegd de auteur Jacob Valenta, de bron
Geweldige man, werkt wonderen!
toegevoegd de auteur Jacob Valenta, de bron