1
考虑一个代码,其中结构包含成员变量bar
和成员引用变量,引用bar
。例如:使复制的成员引用变量引用复制的成员,而不是原始的
struct Foo{
double bar;
double &bar_ref=bar;
};
void receivesFoo(Foo cp_foo){
//&cp_foo.bar_ref is the same as &my_foo.bar_ref
}
int main(){
Foo my_foo;
receivesFoo(my_foo);
return 0;
}
的问题是,如果你犯了一个Foo
的副本通过,例如,把它传递给一个函数,cp_foo.bar_ref
将把my_foo.bar
而不是cp_foo.bar
。我怎样才能让它参考cp_foo.bar
而不是?
注意:为了方便命名,我使用了这些引用变量,因为一些tutorials使它看起来像一个可能的用法,我宁愿避免与宏相关的所有可读性问题。
也许'Foo()= default;'在第二个例子中更合适。它不会搞乱'bar'的值初始化。 – juanchopanza
@juanchopanza,这对我来说是新的。我编辑了这篇文章,请检查它是否正确并且现在完成。谢谢。 – guivenca