类构造函数具有这样的声明...
Class A:
{
public:
A(int a, SharedPtr<class T>sp = SharedPtr<class T>());
~A();
}
现在从另一个类中,我要像共享指针一样销毁该类
delete (SharedPtr<A>*)(*iter);
现在结果崩溃了
checked_delete<class T>
谁能说这
SharedPtr<class T>sp
不完整,或者是导致崩溃的原因。 最佳答案
delete (SharedPtr<A>*)(*iter);
这是什么意思?
1)为什么要转换为
SharedPtr<A>
?您确定演员阵容安全吗? iter
是什么类型? *iter
返回什么?2)为什么您要删除上的?您是否在堆上创建了共享的PTR?这破坏了共享ptr的全部目的。您可以在堆栈上创建它,并根据需要对其进行复制,而不必在堆上创建它。
关于crash - 确定共享指针类型类不完整或完整以及崩溃的原因,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13309116/