2013-01-22 102 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)函數來初始化你的類變量,而不是在構造函數中。