这不完全是我的代码,但它看起来很像它如何让指针超出范围
我有2个CTable类型的表。它们的工作方式与普通数组相同,但可以动态分配和调整大小。所以让我们假装自己是阵列现在
的表具有对象引用
MyObj obj1;
MyObj obj2;
MyObj table1[10];
table1[0] = obj1;
table1[1] = obj2;
现在,因为我想他们有时不同的顺序,我已经把指向这些对象在另一个表
MyObj *table2[10];
table2[0] = &table1[0];
table2[1] = &table1[1];
有没有办法打通表2的引用OBJ1和OBJ2所以这些对象将在某种删除功能的结束走出范围
像
void free() {
MyObj &obj = *table2[0];
}
然后爆炸,在免费结束时,obj被自动删除。此外,通过table2删除这些对象的某种方式也是可以接受的。
究竟应该发生什么?该物体是否应该从表格中删除? – sth 2010-02-17 07:13:06
您是否需要scopeguard(http://www.drdobbs.com/cpp/184403758)实施?你将如何调用删除功能? – Andy 2010-02-17 08:33:24