Wie ein std :: string Variable in eine Funktion zu übergeben
Frage
Ich habe eine C ++ Methode, die eine Variable der Methodensignatur wie dies nimmt:
DLL returnObject** getObject( const std::string folder = "" );
Ich habe versucht, vorbei an:
const std::string myString = "something";
, aber ich erhalte den folgenden Fehler:
No matching function call to ... getObject( std::string&);
Ich habe ein paar Fragen.
- Wie gehe ich in einem normalen std :: string ohne den "&"
- Das sieht aus wie der Wert ist optional „folder =‚‘“ ist es? Und wenn ja, wie Sie einen optionalen Parameter übergeben?
Lösung
Dieses kleine Beispiel funktioniert wie erwartet:
#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());
}
Sie können ein ähnlich kleines Beispiel zu stellen, dass zeigt Ihr Problem.
Andere Tipps
Das kompilierte gut für mich, vergleichen Sie es mit, was Sie tun:
#include <string>
void myFunc(const std::string _str)
{
}
int main()
{
const std::string str = "hello world";
myFunc(str);
return 0;
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow