Делая функции все более общими

0

В настоящее время я работаю над универсальной функцией C++ для чтения данных из базы данных, а затем печатаю ее в файл в формате XML. Каждый файл базы данных получает структуру с базовой информацией в нем о файле базы данных (это проприетарная база данных).

Проблема в том, что, хотя для большинства вещей она совершенно универсальна, есть один файл базы данных, который использует своего рода объединение, где столбец определяет содержимое оставшихся столбцов. Они должны получить свой собственный уровень отступов, как ребенок в основной записи. Вторая проблема заключается в том, что в конечном итоге может быть файл с неизвестным количеством дочерних отступов.

Что мне нужно сделать, чтобы сделать эту функцию максимально универсальной, чтобы избежать необходимости вставлять оператор if для этого конкретного файла? У меня есть средство (потенциально), чтобы заставить его работать с одним ребенком, но когда он попадает в несколько дочерних отступов, все становится немного сумасшедшим и туманным.

Теги:
generics
function

1 ответ

1
Лучший ответ

Вместо того, чтобы передавать structure with basic information, передайте один или несколько указателей на функции (т.е. "обратные вызовы"), которые заботятся о разборе отдельных частей. Таким образом, ваша общая функция реализует алгоритм верхнего уровня, но детали нижнего уровня обрабатываются функциями, предоставляемыми вызывающим.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню