C++ C++;:类成员引用有效性? A类 { A(int&foo):m_foo(foo){} int&mèfoo; }; 内部主(空) { A*bar=0; { int-var=5; bar=新的A(var); } std::cout

C++ C++;:类成员引用有效性? A类 { A(int&foo):m_foo(foo){} int&mèfoo; }; 内部主(空) { A*bar=0; { int-var=5; bar=新的A(var); } std::cout,c++,reference,C++,Reference,是。行为未定义。m\u foo在int var超出范围时无效。它引用的对象已消失。是的,如果引用的对象被取消分配,则引用成员将无效。与指针相同。如果要保留引用,请确保生命期嵌套。或者使用类似于boost::weak_ptr的方法 Class A { A(int& foo) : m_foo(foo) {} int& m_foo; }; int main(void) { A* bar = 0; { int var = 5; b

是。行为未定义。

m\u foo
int var
超出范围时无效。它引用的对象已消失。

是的,如果引用的对象被取消分配,则引用成员将无效。与指针相同。如果要保留引用,请确保生命期嵌套。或者使用类似于
boost::weak_ptr
的方法

Class A
    {
     A(int& foo) : m_foo(foo) {}

     int& m_foo;
    };


int main(void)
{
 A* bar = 0;
 {
   int var = 5;
   bar = new A(var);
 }
 std::cout << "Is m_foo still valid?:" << bar.m_foo << std::endl;
}