Ошибка при выделении объекта типа абстрактного классаC++

Программы на C++. Форум разработчиков
Anonymous
Ошибка при выделении объекта типа абстрактного класса

Сообщение Anonymous »

Класс кнопки меню:

Код: Выделить всё

#ifndef __FORGE_MENU_BUTTON_HPP__
#define __FORGE_MENU_BUTTON_HPP__

#include "ForgeConstruct.hpp"
#include "ForgeConstructFactory.hpp"

class ForgeMenuButton : public ForgeSDLConstruct {

public:
ForgeMenuButton() : ForgeSDLConstruct() {}

virtual void load(const ForgeConstructParams*);

//  more code in here but removed conciseness ...
};

class ForgeMenuButtonCreator : public ForgeBaseCreator{
ForgeConstruct* createForgeConstruct() const {
return new ForgeMenuButton();
}
};
базовый класс:

Код: Выделить всё

class ForgeBaseCreator{

public:
virtual ForgeConstruct* createForgeCosntruct() const = 0;
virtual ~ForgeBaseCreator() {}
};
Наследование и определение:

Код: Выделить всё

class ForgeMenuButtonCreator : public ForgeBaseCreator{
ForgeConstruct* createForgeConstruct() const {
return new ForgeMenuButton();
}
};
вызов из Game Loop .cpp

Код: Выделить всё

ForgeConstructFactory::Instance()->registerType("MenuButton", new ForgeMenuButtonCreator());
Ошибка связана с ForgeMenuButtonCreator():

ошибка при выделении объекта абстрактного класса
Ошибка при выделении объекта абстрактного класса
Ошибка при выделении объекта абстрактного класса p>

Ошибка компиляции с clang:

Код: Выделить всё

unimplemented pure virtual method 'createForgeCosntruct' in 'ForgeMenuButtonCreator'
virtual ForgeConstruct* createForgeCosntruct() const = 0;
Оно определено, не так ли? Не знаю, что еще делать.


Подробнее здесь: https://stackoverflow.com/questions/788 ... class-type

Вернуться в «C++»