Стоит задуматься о том, можно ли с пользой улучшить стиль использования клиента с помощью дополнительных функций C ++.Вы можете часто тривиально оборачивать функции C для большего опыта в стиле C ++.Например:
- объекты могут:
- аккуратно инкапсулировать данные, возвращаемые некоторыми вызовами функций, которые затем используются в качестве входных данных для последующих вызовов, что делает их хранение и использование более неявным
- предоставляют некоторые гарантии относительно правильной последовательности построения (инициализации), использования и уничтожения (очистки)
- пространства имен могут помочь сгруппировать и устранить неоднозначность идентификаторов
- перегрузка оператора может позволить записывать операции над типами, более похожими на математические или логические выражения (например,
x = a + b
вместо x = add(a, b)
) * Исключения 1016 * - могут уменьшить количество мест в клиентском коде, где значения ошибокдолжны быть явно проверены и обработаны (полезно, если этот код, связанный с ошибками, в настоящее время запутывает логику программы)
- если какая-либо из функций реализует универсальную функциональность через void * s, тогда шаблоны могут быть предоставлены как фронтконец, автоматизируя преобразование в
void*
тип
* 1 и обратно023 * Это просто не по зубам ... гораздо проще дать конкретные ответы, если показать репрезентативную выборку функций.
И, конечно, как вы говорите, выИмея исходный код на C, вы можете попробовать скомпилировать его с помощью компилятора C ++, что даст вам возможность избежать «внешнего C» и небольшого загрязнения глобального пространства имен, а также добавить большую часть вышеперечисленного, а не в качестве обертокно в качестве настройки существующего кода: может сэкономить ваше время и упростить сопровождение.