У меня есть метод в классе, который возвращает вектор строк. Достаточно просто. Но, скажем, иногда я хочу, чтобы вся строка возвращалась без разбора? Но используя тот же метод.
Так как метод, который получает данные, довольно сложен, я в настоящее время использую метод для возврата необработанной строки, а затем анализирую ее в вектор в main, если нужно. Или, если хотите, можете продублировать метод просто с другим типом возврата.
Есть ли более элегантный способ сделать это с помощью одного метода?
Извините, ребята, сразу после публикации я разобрался, как это сделать. Сделайте сложный метод, который получает данные закрытыми, настройте два открытых метода, которые его вызывают, и верните разные типы. Цель состояла в том, чтобы не допустить преобразования из набора строк в вектор вне основного. Буду прятаться в классе.
Иногда это помогает говорить о проблемах. Работаю над этим в одиночку и не с кем поговорить.
Спасибо, ребята, хотите верьте, хотите нет, вы помогли, даже не подозревая об этом. 🙂
Как правило, невозможно иметь две функции с одинаковым именем, которые отличаются только типом возвращаемого значения. В узком смысле я вижу следующие основные возможности обойти это ограничение:
В более широком смысле это просто проблема дизайна, как вы только что обнаружили. Вы можете получать, проверять и — только если проверка показывает, что это необходимо — анализировать данные в отдельных шагах, чтобы вы знали, какую функцию вызывать и что делать с данными в каждой точке. Разделяй и властвуй, Дао программирования.