小编dou*_*los的帖子

为什么引用成员变量会相互覆盖?

在下面的代码中,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)

c++ reference

2
推荐指数
1
解决办法
332
查看次数

标签 统计

c++ ×1

reference ×1