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 является указателем, то он будет недействительным, но работает ли он так же со ссылками?