Search code examples
c++stdstring

How to Pass a std::string variable into a function


I have a C++ method that takes one variable the method signature is like this:

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

I tried passing in:

const std::string myString = "something";

but I get the following error:

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

I have a couple questions here.

  1. How do I pass in a normal std::string without the &
  2. This looks like the value is optional folder = "" is it? And if so how do you pass an optional parameter?

Solution

  • This little example works as expected:

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

    You might want to post a similarly small example that shows your problem.