1

我有一个 C++ 方法,它采用一个变量,方法签名是这样的:

DLL returnObject** getObject( const std::string folder = "" );

我试着传入:

const std::string myString = "something";

但我收到以下错误:

No matching function call to ... getObject( std::string&);

我在这里有几个问题。

  1. 我如何在没有正常的std::string情况下通过&
  2. 这看起来像值是可选folder = ""的是吗?如果是这样,您如何传递可选参数?
4

2 回答 2

5

这个小例子按预期工作:

#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());
}

您可能想发布一个类似的小示例来显示您的问题。

于 2010-09-29T00:40:41.403 回答
1

这对我来说编译得很好,将它与你正在做的事情进行比较:

#include <string>

void myFunc(const std::string _str)
{
}

int main()
{
    const std::string str = "hello world";
    myFunc(str);
    return 0;
}
于 2010-09-29T00:43:33.790 回答