题
我有一个 C++ 方法,它接受一个变量,方法签名如下:
DLL returnObject** getObject( const std::string folder = "" );
我尝试传入:
const std::string myString = "something";
但我收到以下错误:
No matching function call to ... getObject( std::string&);
我这里有几个问题。
- 我如何传递一个没有“&”的普通 std::string
- 这看起来该值是可选的“folder = ''”是吗?如果是这样,如何传递可选参数?
解决方案
这个小例子按预期工作:
#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());
}
您可能想发布一个类似的小示例来显示您的问题。
其他提示
这对我来说编译得很好,将其与您正在做的事情进行比较:
#include <string>
void myFunc(const std::string _str)
{
}
int main()
{
const std::string str = "hello world";
myFunc(str);
return 0;
}
不隶属于 StackOverflow