这可能是一个简单的问题,但是,在查看 Android 上所有示例的代码时,我注意到示例中根本没有使用 vtkSmartPointer<>
。有什么特别的原因吗?我现在有点习惯使用它们,我想知道它们的使用是否会导致一些问题?
例如,这是 VolumeRenderer 中使用的 struct
:
struct userData
{
vtkRenderWindow *RenderWindow;
vtkRenderer *Renderer;
vtkAndroidRenderWindowInteractor *Interactor;
};
我只是尝试仅使用智能指针重新实现此示例,到目前为止我没有遇到任何问题,但我想知道这是否是一个好主意。
所以这就是我对完全相同的结构所拥有的:
struct userData
{
vtkSmartPointer<vtkRenderWindow> RenderWindow;
vtkSmartPointer<vtkRenderer> Renderer;
vtkSmartPointer<vtkAndroidRenderWindowInteractor> Interactor;
};
提前致谢。
最佳答案
在您的 Android(或 iOS)应用程序中使用 vtkNew 和/或 vtkSmartPointer 应该没有任何问题。在这种情况下, vtkNew 看起来更合适并保持强大的所有权,如果您出于某种原因需要在外部设置这些成员,那么 vtkSmartPointer 将是要走的路。
有关哪个指针类合适的更多信息,我建议您查看此 Source article
关于c++ - vtkSmartPointer 与 Android,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33480071/