Я новичок в C ++ и, к сожалению, не могу перестать думать на C # (мой прежний язык). Я прочитал несколько книг, форумы и справочный веб-сайт C ++, но не смог найти ответа на свой вопрос, поэтому подумал, что могу попробовать здесь, прежде чем сдаваться и писать что-то уродливое.
Хорошо, мы можем начать. У меня есть класс с абстрактным методом SuccesorsFunction , и я хотел бы, чтобы он возвращал коллекцию указателей на State . Я не хочу принуждать разработчиков к конкретному контейнеру; Я предпочитаю позволить им выбирать (вектор, список и т. Д.).
Это выглядит так:
class Problem
{
public:
virtual list<const State*>::iterator succesorsFunction(const State &state, list<const State*>::iterator result) const = 0;
};
проблема здесь в явном использовании списка. Как это сделать в C ++?
Я думал об использовании шаблонов, но потом столкнулся с двумя проблемами: 1) Похоже, абстрактными методами нельзя (или я ошибаюсь?) 2) Как сообщить шаблону, что он должен содержать указатели на состояние?