是否可以定义一个函数,使参数在返回后引用另一个(已经存在的)对象而不使用指针等?同样,这不能仅仅通过使用复制构造函数或赋值运算符或任何东西来更改现有对象。当函数返回时,外部对象将引用不同的内存块。
例如:
int x;
void change(int& blah) {
blah = x; // I don't want to change blah's value to x's value, I want to make blah refer to x outside the function
}
void main() {
int something = 0;
change(something);
assert(&x == &something);
}
不管使用什么方法,函数都必须像这样调用
change(x);
在调用函数之前不对参数应用任何特殊运算符或函数。我不知道这是否可能,但如果是的话,它将使非常酷的事情成为可能。如果不是,我也想知道为什么。