I have a C++ method that takes one variable the method signature is like this:
DLL returnObject** getObject( const std::string folder = "" );
I tried passing in:
const std::string myString = "something";
but I get the following error:
No matching function call to ... getObject( std::string&);
I have a couple questions here.
- How do I pass in a n开发者_运维问答ormal
std::string
without the&
- This looks like the value is optional
folder = ""
is it? And if so how do you pass an optional parameter?
This little example works as expected:
#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());
}
You might want to post a similarly small example that shows your problem.
This compiled fine for me, compare it to what you're doing:
#include <string>
void myFunc(const std::string _str)
{
}
int main()
{
const std::string str = "hello world";
myFunc(str);
return 0;
}
精彩评论