1)返回对临时的引用是否是未定义的行为,即使该引用未被使用?例如,该程序是否保证输出"良好":
int& func()
{
int i = 5;
return i;
}
int main()
{
func();
cout << "good" << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
2)仅仅具有对不再存在的对象的引用是不确定的行为,即使该引用未被使用?例如,该程序是否保证输出"良好":
int main()
{
int *j = new int();
int &k = *j;
delete j;
cout << "good" << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
3)结合这些是不确定的行为?
int& func()
{
int i = 5;
return i;
}
int main()
{
int& p = func();
cout << "good" << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)