Привет, поэтому у меня есть класс шаблона с именем Body, который принимает одного потомка sf :: Drawable в качестве аргумента шаблона, и я пытаюсь переопределить функцию Render () только для случая, когда аргумент шаблона является sf :: Форма.
Как мне сделать это не встроенным способом? Код работает, когда я определяю функцию внутри класса, автоматически делая ее встроенной, но я получаю ошибок ссылки (несколько символов рендеринга) обнаружен) когда я определяю функцию в отдельном файле .cpp.
Если это поможет, вот код, который выдает ошибку:
// in the header file
template<typename drawable= void>
class Body : public sf::Drawable
{
void Render(){Do_Something();
}
template <>
class Body<Shape> : public sf::Drawable
{
void Render();
}
// in the cpp file
void Body<Shape>::Render()
{
Do_Something_Else();
}