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