2013-01-22 65 views
1

我从vtk类继承了一个类。该类的构造函数需要传递两个参数。我该如何使用New()运算符?初始化具有自己的继承类的vtkSmartPointer

感谢

下面是一个例子:

class MyClass:vtkClass 
{ 
MyClass(argument1, argument2); 

static MyClass* New() 
} 

和初始化

vtkSmartPointer<MyClass> class = vtkSmartPointer<MyClass(??)> 

回答

1

我相信下面的邮件列表中发布意味着你可以绕不要求获得以0比构造器参数:

http://www.vtk.org/pipermail/vtkusers/2012-July/124922.html

因此,您将不得不让您的类的构造函数接受0个参数。然后初始化是这样的:

vtkSmartPointer<MyClass> class = vtkSmartPointer<MyClass>::New(); 

的实施MYCLASS ::新()应该要么使用vtkStandardNewMacro或者你可以实现它作为

MyClass * 
MyClass::New() 
{ 
    return new MyClass(); 
} 

后,你有类实例使用初始化( argument1,argument2)函数来初始化你的类变量,而不是在构造函数中。