在下面的代码中,Var的两个实例的_bla成员似乎代表相同的内存位置,因为在一个实例上设置值也会改变另一个实例.执行程序时,输出为:
v: 44 v2: 44 x: 22
Run Code Online (Sandbox Code Playgroud)
有人可以解释一下吗?
#include <iostream>
using namespace std;
template<typename T> class Var {
T &_bla;
public:
Var(T t) : _bla(t) {}
int bla() const {
return _bla;
}
};
using namespace std;
int main() {
cout << "Hello, World!" << endl;
int x = 22;
Var<int> v = {x};
Var<int> v2 = {44};
cout << "v: " << v.bla() << " v2: " << v2.bla() << " x: " << x << endl;
return 0; …Run Code Online (Sandbox Code Playgroud)