Как написано, ваш код безопасен - ничего не вышло из области видимости.
В этом примере a
выводит из области видимости, но все еще безопасно:
LargeLift b;
{
LargeLift a;
// Gets populated
SharedItems& items = a.getItems();
//give b its own copy
b.setSharedItems(items);
}
// safe, because b owns its own copy
SharedItems& items2 = b.getItems();
В этом примере они небезопасны:
SharedItems* p_items;
LargeLift b;
{
LargeLift a;
// Gets populated
items = &a.getItems();
}
// unsafe, items is already dangling
b.setSharedItems(*p_items);
SharedItems& items2 = b.getItems();