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也無效?C++:類成員引用有效性?
如果m_foo是一個指針,那麼它將是無效的,但它是否與引用一樣工作?