1
Meshオブジェクトを作成するファクトリメソッドがあります。メッシュオブジェクトにはさまざまな味の頂点クラスメンバーがあります。私が達成したい何テンプレート:クラス型のメンバでオブジェクトをインスタンス化する
template<class T>
NewMesh* createMesh(T)
{
mesh_data* md = new mesh_data;
T* vd = new T;
md->vdata = vd;
NewMesh* mptr = new NewMesh(generateUid());
mptr->setData(md);
return mptr;
}
はVDATAのためvertex_data_P3_N3クラスのメンバーでメッシュオブジェクトを作成する必要があり、このようなもの、です。
Mesh* polym = meshFactory.createMesh(vertex_data_P3_N3);
明らかに、これは動作しませんし、コンパイル時エラーをスローします。
これは動作しますが、明白な理由(使用されていないvariabelを宣言する)ための醜いです:
vertex_data_P3_N3 vd;
Mesh* polym = meshFactory.createMesh(vd);
クラスの型を渡すためのより良い方法は何ですか?