Comment faire pour passer une variable std :: string en fonction
Question
I ai une méthode C ++ qui prend une variable de la signature de la méthode est le suivant:
DLL returnObject** getObject( const std::string folder = "" );
J'ai essayé dans le passage:
const std::string myString = "something";
mais je reçois l'erreur suivante:
No matching function call to ... getObject( std::string&);
J'ai quelques questions ici.
- Comment puis-je passer dans une chaîne std :: normale sans « et »
- Cela ressemble à la valeur est facultative « dossier = « » » est-il? Et si oui, comment passez-vous un paramètre optionnel?
La solution
Ce petit exemple fonctionne comme prévu:
#include <stdio.h>
#include <string>
class foo {
public:
void getObject( const std::string folder = "" );
};
int main ()
{
const std::string myString = "something";
foo* pFoo = new foo;
pFoo->getObject( myString);
pFoo->getObject(); // call using default parameter
return 0;
}
void foo::getObject( const std::string folder)
{
printf( "folder is: \"%s\"\n", folder.c_str());
}
Vous pouvez afficher un exemple aussi faible qui montre votre problème.
Autres conseils
Cette belle compilé pour moi, le comparer à ce que vous faites:
#include <string>
void myFunc(const std::string _str)
{
}
int main()
{
const std::string str = "hello world";
myFunc(str);
return 0;
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow