-1

我正在使用 C++ 中的 PhysX 并cannot instantiate abstract class在以下代码中收到错误:

std::vector < PxJoint* > joints;
PxD6Joint* j = PxD6JointCreate(*gPhysics, a0, t0, a1, t1);
joints.push_back (j);
(PxD6Joint)(joints[0])->setDrivePosition(PxTransform()); //error here

代码只是一个例子。PxD6joint 是一个继承自 PxJoint 的抽象类。我认为必须有某种方法可以访问&jvia的公共成员joints[0],但是,如果有,我做的不对。

4

1 回答 1

0

正如 Joachim 所说,您正在尝试将 setDrivePosition 的结果转换为 PxD6Joint 类型,这是错误的(特别是因为该方法不返回任何内容。我猜您正试图以某种方式将 Joint[0] 指向的对象转换为 PxD6Joint类型,没用的,它已经是正确的类了。

但是这个类是一个抽象类:一些方法没有实现(setDrivePosition (const PxTransform &pose)=0)。您需要使用一个属于 PxD6Joint 子类的对象,并实现所有方法。

于 2015-06-04T12:52:31.317 回答