我有一个C ++方法,它接受一个变量,方法签名是这样的:
DLL returnObject** getObject( const std::string folder = "" );
我试过传递:
const std::string myString = "something";
但是我收到以下错误:
No matching function call to ... getObject( std::string&);
我在这里有几个问题。
答案 0 :(得分:4)
这个小例子按预期工作:
#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());
}
您可能希望发布一个显示问题的类似小例子。
答案 1 :(得分:1)
这对我来说很好,与你正在做的比较:
#include <string>
void myFunc(const std::string _str)
{
}
int main()
{
const std::string str = "hello world";
myFunc(str);
return 0;
}