如何将std :: string变量传递给函数

时间:2010-09-29 00:29:39

标签: c++ stdstring

我有一个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 =''”是吗?如果是这样,你如何传递一个可选参数?

2 个答案:

答案 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;
}