【发布时间】:2010-11-14 22:27:28
【问题描述】:
我有一个包含对象指针向量的类。我在该类中有一个 GetObject(..) 函数,它查看向量,找到所需的对象,并返回一个指向它的指针。但是,如果该类的用户对该返回的指针执行 delete(),我的程序将崩溃,因为该向量仍然具有指向该对象的指针,该指针现在无效。因此,在我的 GetObject() 类中,我可以返回一个 const 指针,但这并不能解决问题,因为您仍然可以删除该对象。该对象是可变的,因此我无法返回指向 const 对象的指针。我想我可以通过返回对对象的引用来防止删除,但是如果出现错误,我的函数会返回 NULL。我想我可以通过参数传回对象引用,然后像这样返回和错误号
//-1 on object on found. 0 for success. Object is passed back in
// the function parameter result.
int MyObject::GetObject(int object_id, Item& result)
这是针对这种情况的最佳解决方案吗?
【问题讨论】:
标签: c++ design-patterns