1

vtk クラスからクラスを継承しました。そのクラスのコンストラクターは、2 つの引数を渡す必要があります。New() 演算子を使用するにはどうすればよいですか?

ありがとう

次に例を示します。

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

static MyClass* New()
}

そして初期化

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

1 に答える 1

1

次のメーリング リストへの投稿は、引数が 0 のコンストラクタの要件を回避できないことを意味していると思います。

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

その結果、クラスのコンストラクターが引数を 0 にしないようにする必要があります。次に、次のように初期化します。

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

Myclass::New() の実装は、vtkStandardNewMacro を使用するか、次のように実装する必要があります。

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

クラスインスタンスを取得した後、コンストラクター内ではなく、 Initialize(argument1,argument2) 関数を使用してクラス変数を初期化します。

于 2013-02-20T13:46:01.903 に答える