Подскажите, как разрешить следующую ситуацию - у меня есть базовый контейнер от которого наследуется 2 различных:
class IExtractorBase;
class CExtractor : public IExtractorBase;
class CExtracted_threaded: public IExtractorBase;
У CExtractor и CExtracted_threaded различаются итераторы (опять же разные классы), но хотелось бы в базовом классе сделать чистые виртуальные функции
virtual iterator begin() = 0;
virtual iterator end() = 0;
virtual const_iterator cbegin() const = 0;
virtual const_iterator cend() const = 0;
но сами типы разные для наследуемых классов
Как лучше всего обойти проблему?
Вижу 2 пути
1) сделать базовый класс шаблонным, чтобы можно было указывать что за класс будет итератором и константным итератором
2) можно вообще не делать абстрактный класс
Мне кажется, что первый вариант лучше. Или есть более хорошие решения?
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости