Я пытаюсь организовать один проект Visual Studio, который будет содержать все мои решения проблем Project Euler ( Project Euler ). Я хочу иметь для каждой проблемы отдельный каталог (problemX
), который будет содержать все необходимые файлы для решения этой проблемы. В каталог также будет включен один файл с именем ProblemX
(X - номер проблемы), и этот файл будет «основным» файлом данной проблемы. Однако это моя проблема: я хочу создать своего рода «шаблон» для этого файла. Я хочу, чтобы компилятор выдавал ошибку, когда я не создаю solve()
функцию внутри файла ProblemX
. Как это достижимо? Я знаю, что в C ++ существуют абстрактные классы, и я мог бы создать родительский класс Problem
с помощью абстрактного метода solve()
, а затем я мог бы наследовать этот класс в моих ProblemX
файлах. Однако это работает только для нестатических c методов. Я также хочу иметь основной файл, из которого я мог бы вызывать метод solve()
без создания экземпляров каждого класса ProblemX
перед вызовом метода solve()
. Как бы я go о решении этого? Я также открыт для других предложений о том, как мне организовать свои решения, но я также хотел бы знать решение этой проблемы, поскольку я могу столкнуться с этой проблемой в будущем.