使用字符串引用

g3d*_*g3d 4 c++ reference

我有一个这样的类.我想使用字符串的引用,但它不起作用.我怎么能使用字符串&?

#include <string>
using namespace std;
class T
{
public:
    T(string& s);
private:
    string s;
};

T::T(string& s)
{
    this->s = s;
}
int main(void)
{
    T t("Test Object");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

错误:'T :: T(std :: string&)':无法将参数1从'const char [12]'转换为'std :: string&'

mas*_*oud 5

用途const:

class T
{
public:
    T(const string& ss);
private:
    string s;
};

T::T(const string& ss) : s(ss)
{
}
Run Code Online (Sandbox Code Playgroud)

"Test Object"将被构造为一个const string在传递给T构造函数之前,因此构造函数必须接受一个const string.