質問

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 = ''」のようですよね?もしそうなら、オプションのパラメータを渡すにはどうすればよいでしょうか?
役に立ちましたか?

解決

この小さな例では、期待通りに動作します

#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;
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top