У меня странная проблема с использованием полиморфизма.
У меня есть базовый класс, который реализует статический метод. Этот метод должен быть статическим по разным причинам. Базовый класс также имеет чисто виртуальный метод run()
, который реализуется всеми расширенными классами. Мне нужно иметь возможность звонить run()
из статического класса.
Проблема, конечно, в том, что статический класс не имеет указателя this. Этот метод может быть передан в параметре void *. Я пытался придумать умный способ передать в него метод run, но пока ничего не получалось. также пытался передать это в него. Проблема с этим заключается в том, что мне пришлось бы создать его экземпляр, что требует знания расширенного класса. Это побеждает всю цель полиморфизма.
Есть идеи, как это сделать?