在回答这个问题的时候,我有点困惑了。我们都知道这是因为C++的复制语义而正常工作的:
int *some_obj = new int(42);
int a_copy = *some_obj;
delete some_obj;
printf("The answer is %d\n", a_copy);
但这个怎么办呢?
int *some_obj = new int(42);
int& a_ref = *some_obj;
delete some_obj;
printf("The answer is %d\n", a_ref);
这是在访问已删除的内存吗?
这可能以各种形式被多次询问,但这对谷歌并不友好。天哪,我甚至无法拼出一个像样的标题。
A& func() { return A(); }
? - orlp