У меня есть следующий класс,
class Simulation {
public:
btDefaultCollisionConfiguration collisionConfiguration;
btBroadphaseInterface broadphase;
btSequentialImpulseConstraintSolver solver;
btDynamicsWorld dynamicsWorld;
Simulation() {
broadphase = btCollisionDispatcher(&collisionConfiguration);
}
}
, и когда я компилирую, я получаю эту ошибку
cannot declare field ‘Simulation::broadphase’ to be of abstract type ‘btBroadphaseInterface’
Теперь я думаю, что знаю, что сделал неправильно.Если это скомпилировано, то в тот момент, когда я вызову конструктор, выделенная память будет выделена для виртуального класса и не будет содержать подкласс (btCollisionDispatcher).Я знаю, как решить эту проблему с помощью указателей, но я слышал от людей, что вам следует избегать указателей в C ++, и я подумал, что попробую.Я до сих пор добился успеха, но я не знаю, что здесь делать.