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;
}
"m_foo"是一个引用,"var"是一个局部变量,它被赋予构造函数。 “var”在打印值之前超出范围,所以它是否使 m_foo 也无效?
如果 m_foo 是一个指针,那么它是无效的,但它与引用的工作方式相同吗?
最佳答案
当 m_foo
超出范围时,int var
无效。它所指的东西已经消失了。
关于C++:类成员引用有效性?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4198711/