我想创建一个函数,该函数接受一个指向类实例的指针作为参数,然后将其删除。问题是我不知道它将删除什么。基本上我需要的是这样的:
void Foo(pointer* generic_pointer){
//Some code here
delete generic_pointer;
//Some more code here
}
我考虑过使用void *,但这显然是非常糟糕的编码,并导致混乱。
注意:我有一个基本上是循环的对象,当它结束时,我需要创建另一个对象(属于不同类),这也是一个循环,然后删除原始对象。使用delete this时,我无法启动所需的循环,因此我以为可以从第二个对象中删除它,但是它可以从任何类型的对象中开始,所以这是我唯一想到的。关于如何做还有其他建议吗?
最佳答案
这不可能。 delete
运算符使用数据类型来推断要调用的析构函数。如果类型为void*
,则无法推断出任何明智的方法。您可能需要查看智能指针主题。