如何解决C ++从其他函数分配类成员的值
让我说一堂课
class Test
{
public:
int x = 1;
};
在main中,我创建了一个上述类的对象,并调用了一个名为setInt的函数:
int main()
{
Test example;
setInt(example);
std::cout << example;
}
void setInt(Test example)
{
(// random if statement)
example.x = 5;
}
这将输出1。
这怎么可能?我知道在上面的示例中,变量“ example”仅是函数的局部变量,但是有没有办法更改main()中变量的值?
(请原谅代码中的任何错误)
解决方法
您只是复制整数,然后分配一个新值,而不用原始值进行操作。如果您能写:
void setInt(Test& example)
{
// Now you are changing the original value here
example.x = 5;
}
然后它可以工作。引用操作符的另一种选择称为指针。它们就像通过功能引用一样。在取消引用的任何位置更改它们的值时,主值也会更改。
,默认情况下,将参数传递给函数将按值传递参数,该值将复制参数。函数中对此副本的更改不会反映在main
中。
如果要修改传入的参数,可以使用引用。将您的签名更改为:
void setInt(Test &example) { // changing example changes the argument used in main
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。