У меня есть следующий класс:Вызов чистой виртуальной функции из базового класса, который ее не определяет?
class gkLogicBrick
{
public:
gkLogicBrick(gkGameObject* object, gkLogicLink* link, const gkString& name);
virtual ~gkLogicBrick();
virtual gkLogicBrick* clone(gkLogicLink* link, gkGameObject* dest) = 0;
//unimportant function/variables
};
и это время подклассы, как:
class gkLogicController : public gkLogicBrick
{
gkLogicController(gkGameObject* object, gkLogicLink* link, const gkString& name);
virtual ~gkLogicController() {}
//unimportant function/variables
};
Метод назван clone()
не быть переопределены и все же она вызывается из другого класса на gkLogicController
объекта , Я думал, что назвать чистые виртуальные функции не разрешено? Могут ли компиляторы C++ автоматически создавать определение по умолчанию для любых унаследованных виртуальных функций?
Да, он компилируется. Это небольшая часть большой библиотеки. Я предполагаю, что это не позволяет, поэтому, возможно, мне стоит посмотреть дальше и посмотреть, не происходит ли что-то еще, что мне не хватает ... – mpellegr