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是一个指针,那么它将无效,但是对于引用是否也是同样的情况呢?