0

假设我有一个类 Foo ,它的引用变量类型为 Bar 和一个构造函数,如下所示:

富.h:

class Foo {
  public:
    Bar& m_b;

    Foo(Bar& b);
}

Foo.cpp

Foo::Foo(Bar& b) : m_b(b) {
}

在一个单独的课程中,我有:

// global 
Bar b; 
Foo f(b);

int main() {   
  b.setData();       // actually set some values...
  f.m_b.showData();  // will it show the change?
  return 0; 
}

调用 setData() 后 f 中的引用变量是否也会发生数据变化?我正在尝试这种解决方法,因为我有一个具有引用变量的类(必须在初始化期间设置),但我需要它可以全局访问(在实际设置 Bar 中的数据之前声明)。

4

2 回答 2

1

是的。f.mb并且b都指的是同一个对象。

于 2012-08-14T23:59:04.427 回答
1

是的,它会的。引用只是一个别名。f::m_b并且b完全相同的对象

于 2012-08-14T23:59:12.627 回答