Задать вопрос
@ArtemITS
programmer developer

Кто/Как отвечает за синхронизацию объявлений между “.cpp” и “.h” файлами?

Если в “.cpp”-исходнике программист поменял заголовок функции, то кто должен обновить “.h”-заголовок? Сам программист или какая-нибудь автоматика?

Интересует, как это происходит на практике, если забыть синхронизировать “.cpp” <-> “.h” , то какие последствия ?
  • Вопрос задан
  • 141 просмотр
Подписаться 1 Простой 5 комментариев
Решения вопроса 1
vt4a2h
@vt4a2h Куратор тега C++
Senior software engineer (C++/Qt/boost)
Если функция объявлена, но не определена, то будет ошибка линковки. Если даже не определена, или нет подходящих сигнатур, то ошибка компиляции.

За синхронизацию изменений отвечает сам программист. Помогать ему в этом могут разные средства разработки, например IDE. Многие IDE строят модель кода, и могут показывать сообщения об ошибках ещё до сборки программы. Помимо этого, IDE обычно предоставляют всевозможные варианты рефакторинга: хотите что-то переименовать, используйте соответствующую функциональность среды разработки. В этом случае, имя функции изменится корректно везде или почти везде.

На практике, если вы что-то забыли, то получите ошибку сборки программы (на одном из этапов). Если проект большой и сложный, то он может и собраться, но работать очень неожиданным образом, например если линковщик нашёл где-то символы, но не там где нужно :)

Ну и рекомендую почитать любую книгу по C++, всё что я написал выше, будет в первых главах книги.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Lynn
@Lynn
nginx, js, css
Программист. Возможно с помощью умной IDE, но по любому программист.
Ответ написан
Adamos
@Adamos
Если у вас не совпадает объявление и реализация функции, код не соберется.
Достаточно умная IDE тут же напомнит вам об этом.
Ну, а если этот код выйдет из вашей зоны ответственности с такой ошибкой - собирайте канделябры...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы