我看过其他文章,但还没有真正了解发生了什么。
所以说我有这个代码:
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();
}
Run Code Online (Sandbox Code Playgroud)
印出:5
我的问题是,为什么当我更改n的值时,如果我返回对val的引用,val的值不会改变?
如果你这样做
int& n = s1.get();
n = 10;
std::cout << s1.get();
Run Code Online (Sandbox Code Playgroud)
您会看到10。
| 归档时间: |
|
| 查看次数: |
111 次 |
| 最近记录: |