У меня проблемы с изучением дженериков на C ++.
То, чего я пытаюсь достичь, это иметь абстрактный обобщенный класс
template <typename T>
class MediaEditor {
public: virtual ~MediaEditor() = default;
}
Затем 2 класса, которые расширяют его
class ImageEditor: public MediaEditor<TypeA> {}
class VideoEditor: public MediaEditor<TypeB> {}
Затем в моей функции main () я хочу объявить указатель типа MediaEditor следующим образом:
MediaEditor* editor;
Поскольку это абстрактный класс, я думал, что указывать тип не нужно, но gcc доказал, что я неправ, сказав, что я должен указать аргументы типа.
Значит, он ожидает, что я объявлю это так:
MediaEditor<SomeType>* editor;
Но суть того, что я пытаюсь сделать, заключается не в том, чтобы указывать эти аргументы, а в дальнейшем использовать, например:
editor = new ImageEditor();
Ребята, вы не представляете, как я могу это сделать?