这一条还是比较简单的,就是说不要返回指向对象内部成分的引用、指针等,即便这个引用可能声明为const(或指针指向了const对象),对内部成分做了保护,但仍有可能造成handle空悬(称为danling)。
为此,举了一个例子:
class GUIobject {};
const Rectangle boundingbox(const GUIobject &obj);
Guiobject *pgo;
const Point * upleft = &(boundingbox(*pgo).upperLeft()); // 注意这里
最后一行代码结束后,boundingbox()
的返回值会被析构,那么upleft所指向的成员也不复存在,造成dangling.