我看到有关此问题的其他帖子,但还没有完全理解发生了什么。
假设我有以下代码:
template<typename T>struct S {
S(T value):val{value}{}
T& get(){return val;}
private:
T val;
};
int main(){
S<int>s1{5};
int n = s1.get();
n = 10;
std::cout<<s1.get();
}
这将打印:5
我的问题是,如果我返回了对val的引用,为什么当我更改n的值时,val的值不会改变?
n
没有参考,无论它初始化为什么,都不会有影响。 - Quentinint& n = s1.get();
。 - πάντα ῥεῖint& n = s1.get();
。 - François Andrieux