Перенос одного большого репозитория из SVN и т. Д. В один большой репозиторий Git является явным препятствием. Способ git разработан, вы не можете делать частичные проверки, и даже фиксация может быть медленной. Лучше модульно использовать репо для каждого компонента. По крайней мере, репо на команду. Определенно не репо в организации.
В PlayerSpriteKasua.h вам нужно повторно объявить все методы, которые вы собираетесь переопределить / реализовать (без «= 0», чтобы сказать, что эти методы больше не являются абстрактными). Поэтому вам нужно написать это так:
class PlayerSpriteKasua : public PlayerSpriteBase
{
public:
virtual void think();
virtual void render(long long ScreenX, long long ScreenY);
virtual int getHealth();
};
... или вы пропустили это, чтобы ваш пост был короче?
Вам необходимо предоставить объявление для PlayerSpriteKasua :: render () в определении вашего класса. В противном случае другие единицы перевода, включая ваш PlayerSpriteKasua.h, не смогут сказать, что вы предоставили определение, и будут вынуждены сделать вывод, что PlayerSpriteKasua не может быть создан.
Вам необходимо повторно объявить элементы SpriteBase, которые вы собираетесь реализовать в PlayerSpriteKasua, в объявлении PlayerSpriteKasua в PlayerSpriteKasua.h.