class MyContainedClass {
};
class MyClass {
public:
MyContainedClass * getElement() {
// ...
std::list<MyContainedClass>::iterator it = ... // retrieve somehow
return &(*it);
}
// other methods
private:
std::list<MyContainedClass> m_contained;
};
尽管msdn表示
std::list
不应在删除或插入时执行元素的重定位,但这是将指针返回列表元素的一种好方法吗?PS:我知道我可以使用指针集合(并且必须使用析构函数中的
delete
元素),共享指针集合(我不喜欢)等。 最佳答案
我看不到使用这种封装,但这可能只是我自己。无论如何,返回引用而不是指针对我来说意义更大。