0

我有一个 vtk 项目,其中很多 vtk 对象被构造为私有成员。在 .h 文件中,我初始化 vtk 对象,如下所示:

vtkSmoothPolyDataFilter *m_SmoothFilter;
vtkDecimatePro *m_DecimatePro;
vtkCleanPolyData *m_CleanPolyData;

在运行时,其中一些对象是用 New() 命令初始化的,但其中一些不是。由于我不能使用智能指针(由于我的 UI 包无法使用),我必须在析构函数中删除这些对象。我必须使用一些布尔检查系统来了解它们是否已初始化:

if(m_SmoothFilter)
   m_SmoothFilter->Delete()
if(m_DecimatePro)
   m_DecimatePro->Delete()

但是这段代码摘录没有检测对象是否被初始化。我该怎么做这个检查?

4

1 回答 1

2

将所有指针初始化为零或使用 new 创建的实际对象。然后你的 C++ delete 可以在没有任何 if 的情况下删除(可以删除零指针)。我不确定您上面的 Delete() 是做什么的。

于 2012-05-03T12:40:43.477 回答