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;
}
Run Code Online (Sandbox Code Playgroud)
"m_foo"是一个引用,"var"是一个给构造函数的局部变量."var"在打印值之前超出范围,所以它会使m_foo无效吗?
如果m_foo是一个指针,那么它将无效,但它是否与引用相同?