C++ 字符串的设置值&;串

C++ 字符串的设置值&;串,c++,C++,我有一个string&参数,我想把它分配给string参数 怎样才能做到呢 void f(string &param); string myString = "something"; f(myString) 这就是你需要的吗 这就是您需要的吗?一般来说,字符串&甚至常量字符串&只是一个名称别名,如果您在代码中的某个地方有它,它就等于 // This means you just create a new ALIAS named "aliased_string" // for REA

我有一个string&参数,我想把它分配给string参数

怎样才能做到呢

void f(string &param);

string myString = "something";

f(myString)
这就是你需要的吗


这就是您需要的吗?

一般来说,
字符串&
甚至
常量字符串&
只是一个名称别名,如果您在代码中的某个地方有它,它就等于

// This means you just create a new ALIAS named "aliased_string"
// for REAL "real_string"
string& aliased_string = real_string;
现在,无论何时使用
别名字符串
进行更改,都会直接使用
真实字符串
进行更改

因此,分配变得非常简单:

// Create a new string
string constructed_string;

// Means the same as "constructed_string = real_string"
constructed_string = aliased_string;
请注意,如果在其参数列表中有某个引用函数,则逻辑保持不变:

void foo (string& aliased_string) { ... }
一般指与

void foo () { string& aliased_string = real_string }

其中,
real\u string
作为参数传递。

一般来说,
string&
甚至
const string&
只是一个名称别名,如果代码中有它,它就等于

// This means you just create a new ALIAS named "aliased_string"
// for REAL "real_string"
string& aliased_string = real_string;
现在,无论何时使用
别名字符串
进行更改,都会直接使用
真实字符串
进行更改

因此,分配变得非常简单:

// Create a new string
string constructed_string;

// Means the same as "constructed_string = real_string"
constructed_string = aliased_string;
请注意,如果在其参数列表中有某个引用函数,则逻辑保持不变:

void foo (string& aliased_string) { ... }
一般指与

void foo () { string& aliased_string = real_string }

其中,
real\u string
作为参数传递。

如果您的意思是重新分配字符串引用,则无法执行此操作

string &stringref = a_string;

stringref = &b_string; // Cannot be done

如果您的意思是重新分配字符串引用,那么它就无法完成

string &stringref = a_string;

stringref = &b_string; // Cannot be done

发布一些代码来说明你的问题。你的意思是像函数void f(string&a,string b),其中b的值被分配给a吗?或者您是在说像字符串*b这样的东西作为第二个参数,以访问f()之外的参数?请澄清并向我们提供一些代码。发布一些代码来说明您的问题。您的意思是像函数void f(string&a,string b),其中b的值被分配给a吗?或者您是在说像字符串*b这样的东西作为第二个参数,以访问f()之外的参数?请澄清并向我们提供一些代码。